Merge remote-tracking branch 'origin/master'

master
Yangwl 11 months ago
commit efca5b85b2

@ -6,8 +6,10 @@ import com.op.common.core.web.page.TableDataInfo;
import com.op.common.security.annotation.RequiresPermissions;
import com.op.device.domain.*;
import com.op.device.domain.dto.PDADTO;
import com.op.device.domain.dto.UpKeepOrderDTO;
import com.op.device.service.IDevicePDAService;
import com.op.device.service.IEquRepairOrderService;
import com.op.device.service.IEquRepairWorkOrderService;
import com.op.device.service.IEquSparepartsInOutService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -33,6 +35,9 @@ public class DevicePDAController extends BaseController {
@Autowired
private IEquSparepartsInOutService equSparepartsInOutService;
@Autowired
private IEquRepairWorkOrderService equRepairWorkOrderService;
/**
* list
@ -215,4 +220,43 @@ public class DevicePDAController extends BaseController {
public AjaxResult sparePartsInOutStorage(@RequestBody EquSparepartsInOut equSparepartsInOut) {
return equSparepartsInOutService.insertEquSparepartsInOut(equSparepartsInOut);
}
//报修页面查询
@GetMapping("/getBXList")
public AjaxResult getBXList(EquRepairOrder equRepairOrder) {
return devicePDAService.getBXList(equRepairOrder);
}
/**
*
*/
@GetMapping(value = "/getBXDetail/{orderId}")
public AjaxResult getBXDetail(@PathVariable("orderId") String orderId) {
return success(equRepairOrderService.selectEquRepairOrderByOrderId(orderId));
}
/**
*
*/
@PutMapping("/checkBX")
public AjaxResult checkEquRepairOrder(@RequestBody EquRepairOrder equRepairOrder) {
return toAjax(equRepairOrderService.checkEquRepairOrder(equRepairOrder));
}
/**
*
*
* @param upKeepOrderDTO
* @return
*/
@PostMapping("/checkWX")
public AjaxResult checkWX(@RequestBody UpKeepOrderDTO upKeepOrderDTO) {
return equRepairWorkOrderService.checkRepairWorkOrder(upKeepOrderDTO);
}
//维修页面查询
@GetMapping("/getWXList")
public AjaxResult getWXList(EquRepairWorkOrder equRepairWorkOrder) {
return devicePDAService.getWXList(equRepairWorkOrder);
}
}

@ -141,14 +141,14 @@ public class EquRepairWorkOrderController extends BaseController {
}
/**
*
*
*
* @param upKeepOrderDTO
* @return
*/
@RequiresPermissions("device:repairOrder:inspect")
@PostMapping("/subInspect")
public AjaxResult subInspect(@RequestBody UpKeepOrderDTO upKeepOrderDTO) {
return equRepairWorkOrderService.subInspect(upKeepOrderDTO);
@RequiresPermissions("device:repairOrder:check")
@PostMapping("/checkRepairWorkOrder")
public AjaxResult checkRepairWorkOrder(@RequestBody UpKeepOrderDTO upKeepOrderDTO) {
return equRepairWorkOrderService.checkRepairWorkOrder(upKeepOrderDTO);
}
}

@ -37,7 +37,7 @@ public class EquUpkeepOrderController extends BaseController {
* @param upKeepOrderDTO
* @return
*/
@RequiresPermissions("device:upkeepOrder:add")
@RequiresPermissions("device:upkeepOrder:check")
@PostMapping("/subInspect")
public AjaxResult subInspect(@RequestBody UpKeepOrderDTO upKeepOrderDTO) {
return equUpkeepOrderService.subInspect(upKeepOrderDTO);

@ -87,7 +87,7 @@ public class EquRepairOrder extends BaseEntity {
private String orderConnection;
/**
*
*
*/
@Excel(name = "处理状态")
private String orderStatus;
@ -176,6 +176,12 @@ public class EquRepairOrder extends BaseEntity {
@Excel(name = "报修去向")
private String repairDestination;
/**
*
*/
@Excel(name = "审核意见")
private String auditOpinion;
/**
*
*/
@ -628,7 +634,7 @@ public class EquRepairOrder extends BaseEntity {
this.orderTimeStart = orderTimeStart;
}
public String getOrdeTimeEnd() {
public String getOrderTimeEnd() {
return orderTimeEnd;
}
@ -636,6 +642,14 @@ public class EquRepairOrder extends BaseEntity {
this.orderTimeEnd = orderTimeEnd;
}
//审核意见
public String getAuditOpinion() {
return auditOpinion;
}
public void setAuditOpinion(String auditOpinion) {
this.auditOpinion = auditOpinion;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

@ -135,9 +135,15 @@ public class EquRepairWorkOrder extends BaseEntity {
@Excel(name = "故障开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date faultStartTime;
@Excel(name = "结果检验")
@Excel(name = "结果检验")//也就是审核
private String resultInspect;
@Excel(name = "备注")
private String remark;
@Excel(name = "审核意见")
private String auditOpinion;
/////////////////////////////////////////////////////////设备表字段
@Excel(name = "设备名称")
private String equipmentName;//设备名称
@ -330,7 +336,6 @@ public class EquRepairWorkOrder extends BaseEntity {
return workshopName;
}
//维修工单
public void setWorkId(String workId) {
this.workId = workId;
@ -616,6 +621,18 @@ public class EquRepairWorkOrder extends BaseEntity {
public String getResultInspect() { return resultInspect; }
public void setResultInspect(String resultInspect) { this.resultInspect = resultInspect; }
//备注
public String getRemark() { return remark; }
public void setRemark(String remark) { this.remark = remark; }
//新增 审核意见
public String getAuditOpinion() {
return auditOpinion;
}
public void setAuditOpinion(String auditOpinion) {
this.auditOpinion = auditOpinion;
}
//委外
public void setOutSourceReason(String outSourceReason) {
this.outSourceReason = outSourceReason;

@ -24,93 +24,49 @@ public class EquSpareApply extends BaseEntity {
*/
private String applyId;
/**
*
*/
@Excel(name = "单号")
@Excel(name = "申领单号")
private String applyCode;
/**
*
*/
@Excel(name = "备品备件编码")
private String spareCode;
/**
*
*/
@Excel(name = "备品备件名称")
private String spareName;
/**
*
*/
@Excel(name = "规格型号")
private String spareModel;
/**
*
*/
@Excel(name = "数量")
private BigDecimal spareQuantity;
/**
* 使线
*/
@Excel(name = "使用组线")
private String spareGroupLine;
/**
* 使
*/
@Excel(name = "使用设备")
private String spareUseEquipment;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "领用时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date applyTime;
/**
*
*/
@Excel(name = "申领人")
private String applyPeople;
/**
*
*/
@Excel(name = "批准人")
private String applyApprovePeople;
/**
* 1
*/
@Excel(name = "备用字段1")
private String attr1;
/**
* 2
*/
@Excel(name = "备用字段2")
private String attr2;
/**
* 3
*/
@Excel(name = "备用字段3")
private String attr3;
/**
*
*/
@Excel(name = "删除标志")
private String delFlag;
/**
*
*/
@Excel(name = "工厂号")
private String factoryCode;
@ -123,59 +79,39 @@ public class EquSpareApply extends BaseEntity {
// 创建日期结束
private String applyTimeEnd;
//新增字段
/**
*
*/
//工单编码
private String workCode;
/**
* code()
*/
//关联上级code(保养)
private String parentCode;
/**
*
*/
//领用类型
private String applyType;
//批量新增申领记录
private List<EquSpareApply> spareApplyLists;
/**
* id
*/
//备品备件台账 主键id
private String storageId;
/**
*
*/
//总数量
private BigDecimal amount;
/**
*
*/
@Excel(name = "物料号")
//物料号
private String materialCode;
/**
*
*/
@Excel(name = "物料描述")
//物料描述
private String materialDesc;
/**
*
*/
@Excel(name = "单价")
//单价
private BigDecimal unitPrice;
/**
*
*/
@Excel(name = "总价")
//总价
private BigDecimal totalPrice;
public void setUnitPrice(BigDecimal unitPrice) {
this.unitPrice = unitPrice;
}
public BigDecimal getUnitPrice() {
return unitPrice;
}
@ -183,7 +119,6 @@ public class EquSpareApply extends BaseEntity {
public void setTotalPrice(BigDecimal totalPrice) {
this.totalPrice = totalPrice;
}
public BigDecimal getTotalPrice() {
return totalPrice;
}
@ -191,7 +126,6 @@ public class EquSpareApply extends BaseEntity {
public void setMaterialCode(String materialCode) {
this.materialCode = materialCode;
}
public String getMaterialCode() {
return materialCode;
}
@ -199,7 +133,6 @@ public class EquSpareApply extends BaseEntity {
public void setMaterialDesc(String materialDesc) {
this.materialDesc = materialDesc;
}
public String getMaterialDesc() {
return materialDesc;
}
@ -207,7 +140,6 @@ public class EquSpareApply extends BaseEntity {
public List<Date> getApplyTimeArray() {
return applyTimeArray;
}
public void setApplyTimeArray(List<Date> applyTimeArray) {
this.applyTimeArray = applyTimeArray;
}
@ -215,7 +147,6 @@ public class EquSpareApply extends BaseEntity {
public String getApplyTimeStart() {
return applyTimeStart;
}
public void setApplyTimeStart(String createTimeStart) {
this.applyTimeStart = createTimeStart;
}
@ -223,7 +154,6 @@ public class EquSpareApply extends BaseEntity {
public String getApplyTimeEnd() {
return applyTimeEnd;
}
public void setApplyTimeEnd(String applyTimeEnd) {
this.applyTimeEnd = applyTimeEnd;
}
@ -231,7 +161,6 @@ public class EquSpareApply extends BaseEntity {
public void setApplyId(String applyId) {
this.applyId = applyId;
}
public String getApplyId() {
return applyId;
}
@ -239,7 +168,6 @@ public class EquSpareApply extends BaseEntity {
public void setApplyCode(String applyCode) {
this.applyCode = applyCode;
}
public String getApplyCode() {
return applyCode;
}
@ -247,7 +175,6 @@ public class EquSpareApply extends BaseEntity {
public void setSpareCode(String spareCode) {
this.spareCode = spareCode;
}
public String getSpareCode() {
return spareCode;
}
@ -255,7 +182,6 @@ public class EquSpareApply extends BaseEntity {
public void setSpareName(String spareName) {
this.spareName = spareName;
}
public String getSpareName() {
return spareName;
}
@ -263,7 +189,6 @@ public class EquSpareApply extends BaseEntity {
public void setSpareModel(String spareModel) {
this.spareModel = spareModel;
}
public String getSpareModel() {
return spareModel;
}
@ -271,7 +196,6 @@ public class EquSpareApply extends BaseEntity {
public void setSpareQuantity(BigDecimal spareQuantity) {
this.spareQuantity = spareQuantity;
}
public BigDecimal getSpareQuantity() {
return spareQuantity;
}
@ -279,7 +203,6 @@ public class EquSpareApply extends BaseEntity {
public void setSpareGroupLine(String spareGroupLine) {
this.spareGroupLine = spareGroupLine;
}
public String getSpareGroupLine() {
return spareGroupLine;
}
@ -287,7 +210,6 @@ public class EquSpareApply extends BaseEntity {
public void setSpareUseEquipment(String spareUseEquipment) {
this.spareUseEquipment = spareUseEquipment;
}
public String getSpareUseEquipment() {
return spareUseEquipment;
}
@ -295,7 +217,6 @@ public class EquSpareApply extends BaseEntity {
public void setApplyTime(Date applyTime) {
this.applyTime = applyTime;
}
public Date getApplyTime() {
return applyTime;
}
@ -303,7 +224,6 @@ public class EquSpareApply extends BaseEntity {
public void setApplyPeople(String applyPeople) {
this.applyPeople = applyPeople;
}
public String getApplyPeople() {
return applyPeople;
}
@ -311,7 +231,6 @@ public class EquSpareApply extends BaseEntity {
public void setApplyApprovePeople(String applyApprovePeople) {
this.applyApprovePeople = applyApprovePeople;
}
public String getApplyApprovePeople() {
return applyApprovePeople;
}
@ -319,7 +238,6 @@ public class EquSpareApply extends BaseEntity {
public void setAttr1(String attr1) {
this.attr1 = attr1;
}
public String getAttr1() {
return attr1;
}
@ -327,7 +245,6 @@ public class EquSpareApply extends BaseEntity {
public void setAttr2(String attr2) {
this.attr2 = attr2;
}
public String getAttr2() {
return attr2;
}
@ -335,7 +252,6 @@ public class EquSpareApply extends BaseEntity {
public void setAttr3(String attr3) {
this.attr3 = attr3;
}
public String getAttr3() {
return attr3;
}
@ -343,7 +259,6 @@ public class EquSpareApply extends BaseEntity {
public void setDelFlag(String delFlag) {
this.delFlag = delFlag;
}
public String getDelFlag() {
return delFlag;
}
@ -351,81 +266,48 @@ public class EquSpareApply extends BaseEntity {
public void setFactoryCode(String factoryCode) {
this.factoryCode = factoryCode;
}
public String getFactoryCode() {
return factoryCode;
}
//新增
/**
* ()
*/
public String getWorkCode() {
return this.workCode;
}
/**
* ()
*/
public void setWorkCode(String workCode) {
this.workCode = workCode;
}
/**
* code()
*/
public String getParentCode() {
return this.parentCode;
}
/**
* code()
*/
public void setParentCode(String parentCode) {
this.parentCode = parentCode;
}
/**
*
*/
public String getApplyType() {
return this.applyType;
}
/**
*
*/
public void setApplyType(String applyType) {
this.applyType = applyType;
}
//批量新增申领记录
public List<EquSpareApply> getSpareApplyLists() {
return this.spareApplyLists;
}
/**
*
*/
public void setSpareApplyLists(List<EquSpareApply> spareApplyLists) {
this.spareApplyLists = spareApplyLists;
}
//id
public void setStorageId(String storageId) {
this.storageId = storageId;
}
public String getStorageId() {
return storageId;
}
//总数量
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public BigDecimal getAmount() {
return amount;
}

@ -1,5 +1,7 @@
package com.op.device.domain.dto;
import com.op.common.core.annotation.Excel;
import java.util.List;
// 保养工单DTO
@ -10,6 +12,9 @@ public class UpKeepOrderDTO {
private String inspect;
//新增 审核意见
private String auditOpinion;
public String getInspect() {
return inspect;
}
@ -33,4 +38,13 @@ public class UpKeepOrderDTO {
public void setOrderCodes(List<String> orderCodes) {
this.orderCodes = orderCodes;
}
//新增 审核意见
public String getAuditOpinion() {
return auditOpinion;
}
public void setAuditOpinion(String auditOpinion) {
this.auditOpinion = auditOpinion;
}
}

@ -118,4 +118,7 @@ public interface EquRepairWorkOrderMapper {
//更新结果检验
void updateResultInspect(EquRepairWorkOrder equRepairWorkOrder);
//回退维修工单
void returnRepairWorkOrder(EquRepairWorkOrder dto);
}

@ -3,6 +3,7 @@ package com.op.device.service;
import com.op.common.core.web.domain.AjaxResult;
import com.op.device.domain.*;
import com.op.device.domain.dto.PDADTO;
import com.op.device.domain.dto.UpKeepOrderDTO;
import java.util.List;
@ -140,4 +141,12 @@ public interface IDevicePDAService {
AjaxResult selectEquFaultReasonList(EquFaultReason equFaultReason);
AjaxResult selectSpareDetailBySpareCode(String spareCode);
//获取报修列表
AjaxResult getBXList(EquRepairOrder equRepairOrder);
AjaxResult getWXList(EquRepairWorkOrder equRepairWorkOrder);
//故障维修审核
// AjaxResult checkWX(UpKeepOrderDTO upKeepOrderDTO);
}

@ -71,5 +71,6 @@ public interface IEquRepairWorkOrderService {
public int applyEquOutsourceWork(EquRepairWorkOrder equRepairWorkOrder);
//维修故障检验
AjaxResult subInspect(UpKeepOrderDTO upKeepOrderDTO);
AjaxResult checkRepairWorkOrder(UpKeepOrderDTO upKeepOrderDTO);
}

@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.context.SecurityContextHolder;
import com.op.common.core.domain.BaseFileData;
import com.op.common.core.exception.auth.NotLoginException;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.StringUtils;
import com.op.common.core.utils.uuid.IdUtils;
@ -269,7 +270,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
if (repairOrder == null) {
return error(500, "未查询到报修单信息!");
} else {
if (!repairOrder.getOrderStatus().equals("待审核")) {
if (!repairOrder.getOrderStatus().equals("2")) {
return error(500, "报修单已审核,不可修改记录!");
}
}
@ -391,7 +392,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
if (equOrder.getPlanType().equals("maintenance")) {
equRepairOrder.setOrderSource("保养");
}
equRepairOrder.setOrderStatus("待审核");
equRepairOrder.setOrderStatus("2");
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", ""));
@ -562,7 +563,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
equRepairOrder.setCreateBy(SecurityUtils.getUsername());
equRepairOrder.setOrderRepairmanCode(SecurityUtils.getUsername());
equRepairOrder.setOrderTime(DateUtils.getNowDate());
equRepairOrder.setOrderStatus("待审核");
equRepairOrder.setOrderStatus("2");
equRepairOrder.setOrderSource("手持PDA");
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
@ -809,22 +810,23 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
try {
//不停机 那么实际停机开始时间和实际停机结束时间都没有
//如果停机 那么实际停机时间就是传入的时间
equRepairWorkOrder.setWorkStartTime(DateUtils.getNowDate());
if (equRepairWorkOrder.getWorkDownMachine().equals("1")) {
equRepairWorkOrder.setActualDownStartTime(DateUtils.getNowDate());
//如果这是被驳回的维修单 维修单状态变为待维修 那么维修开始时间 实际停机时间 还是原来的那个
if(equRepairWorkOrder == null){
equRepairWorkOrder.setWorkStartTime(DateUtils.getNowDate());
if (equRepairWorkOrder.getWorkDownMachine().equals("1")) {
equRepairWorkOrder.setActualDownStartTime(DateUtils.getNowDate());
}
}
equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername());
equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate());
//维修中
equRepairWorkOrder.setWorkStatus("2");
//维修工单里面的设备名 简化TODO
EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId());
//修改设备状态 改为维修中
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(list.getEquipmentCode());
equEquipment.setEquipmentStatus("2");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder);
return success("提交成功,设备开始维修!");
} catch (Exception e) {
@ -912,143 +914,150 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
@Override
@DS("#header.poolName")
public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder) {
try {
////0.时间
Date date = DateUtils.getNowDate();
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
String formattedDate = dateFormat.format(date);
EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equRepairWorkOrder.getEquipmentCode());
if (equ == null) {
//不应该用登录的 todo
throw new NotLoginException("设备表中不存在此设备,请确认!");
}
////1.判断是否停机
EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId());
if (list.getWorkDownMachine().equals("1")) {
equRepairWorkOrder.setActualDownEndTime(date);//维修真正停机时间
////0.时间
Date date = DateUtils.getNowDate();
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
String formattedDate = dateFormat.format(date);
////1.判断是否停机
EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId());
if (list.getWorkDownMachine().equals("1")) {
equRepairWorkOrder.setActualDownEndTime(date);//维修真正停机时间
}
equRepairWorkOrder.setWorkEndTime(date);//维修工单结束时间
//1.2判断字段里面是否为空,是空的用,用无替代
if (equRepairWorkOrder.getWorkFaultDesc() == null || equRepairWorkOrder.getWorkFaultDesc().equals("")) {//故障描述
equRepairWorkOrder.setWorkFaultDesc("无");
}
if (equRepairWorkOrder.getWorkReason() == null || equRepairWorkOrder.getWorkFaultDesc().equals("")) { //故障原因
equRepairWorkOrder.setWorkFaultDesc("无");
}
if (equRepairWorkOrder.getRepairMeasures() == null || equRepairWorkOrder.getRepairMeasures().equals("")) {//故障措施
equRepairWorkOrder.setRepairMeasures("无");
}
if (equRepairWorkOrder.getWorkPerson() == null || equRepairWorkOrder.getWorkPerson().equals("")) {//维修人
equRepairWorkOrder.setWorkPerson("无");
}
////2.计算维修工单用时 + 故障停机时间
if (list.getWorkStartTime() != null && equRepairWorkOrder.getWorkEndTime() != null) {
////2.1计算维修日期差值
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime workStart = LocalDateTime.ofInstant(list.getWorkStartTime().toInstant(), zoneId);
LocalDateTime workEnd = LocalDateTime.ofInstant(equRepairWorkOrder.getWorkEndTime().toInstant(), zoneId);
LocalDateTime workDateTime = LocalDateTime.from(workStart);
double workHours = workDateTime.until(workEnd, ChronoUnit.HOURS);
double workMinutes = ((workDateTime.until(workEnd, ChronoUnit.MINUTES) * 1.0) % 60) / 60;
double workSeconds = ((workDateTime.until(workEnd, ChronoUnit.SECONDS) * 1.0) % 3600) / 3600;
double workHour = BigDecimal.valueOf(workHours + workMinutes + workSeconds).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
equRepairWorkOrder.setWorkCostTime(String.valueOf(workHour) + "小时"); //塞入维修用时
////2.2 计算故障停机时间差值
//报修的故障时间 和 快速工单的故障开始时间
Date downStartTime = new Date();
if (list.getOrderBreakdownTime() != null) {
downStartTime = list.getOrderBreakdownTime();
} else if (list.getFaultStartTime() != null) {
downStartTime = list.getFaultStartTime();
}
equRepairWorkOrder.setWorkEndTime(date);//维修工单结束时间
LocalDateTime downStart = LocalDateTime.ofInstant(downStartTime.toInstant(), zoneId);
LocalDateTime downEnd = LocalDateTime.ofInstant(equRepairWorkOrder.getWorkEndTime().toInstant(), zoneId);
LocalDateTime downDateTime = LocalDateTime.from(downStart);
//1.2判断字段里面是否为空,是空的用,用无替代
if(equRepairWorkOrder.getWorkFaultDesc() == null || equRepairWorkOrder.getWorkFaultDesc().equals("")){//故障描述
equRepairWorkOrder.setWorkFaultDesc("无");
}
if(equRepairWorkOrder.getWorkReason() == null || equRepairWorkOrder.getWorkFaultDesc().equals("")){ //故障原因
equRepairWorkOrder.setWorkFaultDesc("无");
}
if(equRepairWorkOrder.getRepairMeasures() == null || equRepairWorkOrder.getRepairMeasures().equals("")){//故障措施
equRepairWorkOrder.setRepairMeasures("无");
}
if(equRepairWorkOrder.getWorkPerson() == null || equRepairWorkOrder.getWorkPerson().equals("")){//维修人
equRepairWorkOrder.setWorkPerson("无");
}
double downHours = downDateTime.until(downEnd, ChronoUnit.HOURS);
double downMinutes = ((downDateTime.until(downEnd, ChronoUnit.MINUTES) * 1.0) % 60) / 60;
double downSeconds = ((downDateTime.until(downEnd, ChronoUnit.SECONDS) * 1.0) % 3600) / 3600;
double downHour = BigDecimal.valueOf(downHours + downMinutes + downSeconds).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
equRepairWorkOrder.setFaultDownTime(String.valueOf(downHour) + "小时");
}
////2.计算维修工单用时 + 故障停机时间
if (list.getWorkStartTime() != null && equRepairWorkOrder.getWorkEndTime() != null) {
////2.1计算维修日期差值
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime workStart = LocalDateTime.ofInstant(list.getWorkStartTime().toInstant(), zoneId);
LocalDateTime workEnd = LocalDateTime.ofInstant(equRepairWorkOrder.getWorkEndTime().toInstant(), zoneId);
LocalDateTime workDateTime = LocalDateTime.from(workStart);
//代码注释掉了 改了流程 之前是维修完成后,更改设备状态 和 设备运行报表 现在是审核通过之后,才会扣除
////完好率报表
////3.1查询当日完好率报表
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// String time = sdf.format(equRepairWorkOrder.getWorkEndTime());
// EquOperation equOperation = equOperationMapper.selectEquipmentIntegrityRate(time, equRepairWorkOrder.getEquipmentCode());
double workHours = workDateTime.until(workEnd, ChronoUnit.HOURS);
double workMinutes = ((workDateTime.until(workEnd, ChronoUnit.MINUTES) * 1.0) % 60) / 60;
double workSeconds = ((workDateTime.until(workEnd, ChronoUnit.SECONDS) * 1.0) % 3600) / 3600;
double workHour = BigDecimal.valueOf(workHours + workMinutes + workSeconds).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
equRepairWorkOrder.setWorkCostTime(String.valueOf(workHour)+"小时"); //塞入维修用时
////2.2 计算故障停机时间差值
//报修的故障时间 和 快速工单的故障开始时间
Date downStartTime = new Date();
if(list.getOrderBreakdownTime() != null){
downStartTime = list.getOrderBreakdownTime();
}else if(list.getFaultStartTime() != null){
downStartTime = list.getFaultStartTime();
}
LocalDateTime downStart = LocalDateTime.ofInstant(downStartTime.toInstant(), zoneId);
LocalDateTime downEnd = LocalDateTime.ofInstant(equRepairWorkOrder.getWorkEndTime().toInstant(), zoneId);
LocalDateTime downDateTime = LocalDateTime.from(downStart);
double downHours = downDateTime.until(downEnd, ChronoUnit.HOURS);
double downMinutes = ((downDateTime.until(downEnd, ChronoUnit.MINUTES) * 1.0) % 60) / 60;
double downSeconds = ((downDateTime.until(downEnd, ChronoUnit.SECONDS) * 1.0) % 3600) / 3600;
double downHour = BigDecimal.valueOf(downHours + downMinutes + downSeconds).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
equRepairWorkOrder.setFaultDownTime(String.valueOf(downHour)+"小时");
////完好率报表
////3.1查询当日完好率报表
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String time = sdf.format(equRepairWorkOrder.getWorkEndTime());
EquOperation equOperation = equOperationMapper.selectEquipmentIntegrityRate(time, equRepairWorkOrder.getEquipmentCode());
////3.2修改完好率报表
if (equOperation != null) {
if (list.getWorkDownMachine().equals("1")) {
DecimalFormat df = new DecimalFormat("#.##");
double result = Double.parseDouble(equOperation.getActualOperationTime()) - downHour;//实际运行时间 = 实际运行时间 - 故障停机时间
double faultTime = Double.parseDouble(equOperation.getFaultTime()) + downHour;//故障时间 = 原来的故障停机时间 + 这次的故障停机时间
BigDecimal faultTimeBD = new BigDecimal(faultTime);// 故障停机时间
BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());//运行时间
equOperation.setActualOperationTime(String.valueOf(df.format(result)));//实际运行时间
equOperation.setFaultTime(String.valueOf(faultTime));//故障停机时间
equOperation.setFailureRate(faultTimeBD.multiply(new BigDecimal(100)).divide(operationTimeBD, 2, RoundingMode.HALF_UP).toString() + "%");
equOperation.setShutdownTimes(equOperation.getShutdownTimes() + 1);//故障停机次数加1
}
equOperation.setFailureTimes(equOperation.getFailureTimes() + 1);//故障次数加1
equOperation.setUpdateBy(SecurityUtils.getUsername());
equOperation.setUpdateTime(date);
String GZMS = equOperation.getFailureDescription();//故障描述
String GZYY = equOperation.getReasonAnalyze();//故障原因
String GZCS = equOperation.getHandlingMethod();//维修措施
String WXR = equOperation.getRepairPerson();//维修人
if (GZMS != null) {
equOperation.setFailureDescription(GZMS + formattedDate + ":" + equRepairWorkOrder.getWorkFaultDesc() + ";");
} else {
equOperation.setFailureDescription(formattedDate + ":" + equRepairWorkOrder.getWorkFaultDesc() + ";");
}
if (GZYY != null) {
equOperation.setReasonAnalyze(GZYY + formattedDate + ":" + equRepairWorkOrder.getWorkReason() + ";");
} else {
equOperation.setReasonAnalyze(formattedDate + ":" + equRepairWorkOrder.getWorkReason() + ";");
}
if (GZCS != null) {
equOperation.setHandlingMethod(GZCS + formattedDate + ":" + equRepairWorkOrder.getRepairMeasures() + ";");
} else {
equOperation.setHandlingMethod(formattedDate + ":" + equRepairWorkOrder.getRepairMeasures() + ";");
}
if (WXR != null) {
equOperation.setRepairPerson(WXR + formattedDate + ":" + SecurityUtils.getUsername() + ";");
} else {
equOperation.setRepairPerson(formattedDate + ":" + SecurityUtils.getUsername() + ";");
}
////4.修改设备状态 由维修中改为正常运行 ;设备状态描述 由什么状态转为什么状态,修改设备状态 由维修中改为正常运行
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(list.getEquipmentCode());
EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equEquipment.getEquipmentCode());
String equStatus = "";
if(equ.getEquipmentStatus().equals("0")){
equStatus = "设备状态由故障转为正常运行;";
}else if(equ.getEquipmentStatus().equals("2")){
equStatus = "设备状态由维修中转为正常运行;";
}
else if(equ.getEquipmentStatus().equals("1")){
equStatus = "设备状态正常运行;";
}
// else if(equ.getEquipmentStatus().equals("4")){
// equStatus = "设备状态由维修保养中转为保养中;";
// }
if (equOperation.getEquStatusDes() == null || equOperation.getEquStatusDes().equals("")) {
equOperation.setEquStatusDes(formattedDate + ":" + equStatus);
} else {
equOperation.setEquStatusDes(equOperation.getEquStatusDes() + formattedDate + equStatus);//设备状态描述
}
if(equ.getEquipmentStatus().equals("0") || equ.getEquipmentStatus().equals("2")){
equEquipment.setEquipmentStatus("1");
}
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
equOperationMapper.updateEquOperation(equOperation);
}
}
////3.2修改完好率报表
// if (equOperation != null) {
// if (list.getWorkDownMachine().equals("1")) {
// DecimalFormat df = new DecimalFormat("#.##");
// double result = Double.parseDouble(equOperation.getActualOperationTime()) - downHour;//实际运行时间 = 实际运行时间 - 故障停机时间
// double faultTime = Double.parseDouble(equOperation.getFaultTime()) + downHour;//故障时间 = 原来的故障停机时间 + 这次的故障停机时间
// BigDecimal faultTimeBD = new BigDecimal(faultTime);// 故障停机时间
// BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());//运行时间
// equOperation.setActualOperationTime(String.valueOf(df.format(result)));//实际运行时间
// equOperation.setFaultTime(String.valueOf(faultTime));//故障停机时间
// equOperation.setFailureRate(faultTimeBD.multiply(new BigDecimal(100)).divide(operationTimeBD, 2, RoundingMode.HALF_UP).toString() + "%");
// equOperation.setShutdownTimes(equOperation.getShutdownTimes() + 1);//故障停机次数加1
// }
// equOperation.setFailureTimes(equOperation.getFailureTimes() + 1);//故障次数加1
// equOperation.setUpdateBy(SecurityUtils.getUsername());
// equOperation.setUpdateTime(date);
//
// String GZMS = equOperation.getFailureDescription();//故障描述
// String GZYY = equOperation.getReasonAnalyze();//故障原因
// String GZCS = equOperation.getHandlingMethod();//维修措施
// String WXR = equOperation.getRepairPerson();//维修人
// if (GZMS != null) {
// equOperation.setFailureDescription(GZMS + formattedDate + ":" + equRepairWorkOrder.getWorkFaultDesc() + ";");
// } else {
// equOperation.setFailureDescription(formattedDate + ":" + equRepairWorkOrder.getWorkFaultDesc() + ";");
// }
// if (GZYY != null) {
// equOperation.setReasonAnalyze(GZYY + formattedDate + ":" + equRepairWorkOrder.getWorkReason() + ";");
// } else {
// equOperation.setReasonAnalyze(formattedDate + ":" + equRepairWorkOrder.getWorkReason() + ";");
// }
// if (GZCS != null) {
// equOperation.setHandlingMethod(GZCS + formattedDate + ":" + equRepairWorkOrder.getRepairMeasures() + ";");
// } else {
// equOperation.setHandlingMethod(formattedDate + ":" + equRepairWorkOrder.getRepairMeasures() + ";");
// }
// if (WXR != null) {
// equOperation.setRepairPerson(WXR + formattedDate + ":" + SecurityUtils.getUsername() + ";");
// } else {
// equOperation.setRepairPerson(formattedDate + ":" + SecurityUtils.getUsername() + ";");
// }
//
// ////4.修改设备状态 由维修中改为正常运行 ;设备状态描述 由什么状态转为什么状态,修改设备状态 由维修中改为正常运行
// EquEquipment equEquipment = new EquEquipment();
// equEquipment.setEquipmentCode(list.getEquipmentCode());
// EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equEquipment.getEquipmentCode());
// String equStatus = "";
// if(equ.getEquipmentStatus().equals("0")){
// equStatus = "设备状态由故障转为正常运行;";
// }else if(equ.getEquipmentStatus().equals("2")){
// equStatus = "设备状态由维修中转为正常运行;";
// }
// else if(equ.getEquipmentStatus().equals("1")){
// equStatus = "设备状态正常运行;";
// }
// // else if(equ.getEquipmentStatus().equals("4")){
// // equStatus = "设备状态由维修保养中转为保养中;";
// // }
//
// if (equOperation.getEquStatusDes() == null || equOperation.getEquStatusDes().equals("")) {
// equOperation.setEquStatusDes(formattedDate + ":" + equStatus);
// } else {
// equOperation.setEquStatusDes(equOperation.getEquStatusDes() + formattedDate + equStatus);//设备状态描述
// }
//
// if(equ.getEquipmentStatus().equals("0") || equ.getEquipmentStatus().equals("2")){
// equEquipment.setEquipmentStatus("1");
// }
// equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
// equOperationMapper.updateEquOperation(equOperation);
// }
// }
////5.更新每一项点检/巡检检查项信息
if (StringUtils.isNotEmpty(equRepairWorkOrder.getDetailList())) {
@ -1152,10 +1161,71 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
// BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equRepairWorkOrder.getOrderCode());
// BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost()));
// equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost)));
return success("提交成功,维修完成!");
} catch (Exception e) {
return error("提交失败!");
}
////9.发送微信提醒
//发企业微信--------------------开始(跟班组有关)
SimpleDateFormat myFmt = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
//规范时间格式
SysNoticeGroup noticeQo = new SysNoticeGroup();
noticeQo.setNoticeId(22L);
EquTeamUser equTeamUser = new EquTeamUser();
equTeamUser.setUserName(SecurityUtils.getUsername());
List<SysNoticeGroup> notices = equRepairOrderMapper.getNoticesGroup(noticeQo);
if (!CollectionUtils.isEmpty(notices)) {
List<WechartDTO> wecharts = new ArrayList<>();
List<String> userCodes = notices.stream()
.map(SysNoticeGroup::getUserCode)
.collect(Collectors.toList());
for (SysNoticeGroup noticeDto : notices) {
WechartDTO wechart0 = new WechartDTO();
wechart0.setUserId(noticeDto.getWxId());
String contentInfo = noticeDto.getNoticeContent();
contentInfo = contentInfo
.replace("${n}", "\n")
.replace("${workCode}", equRepairWorkOrder.getWorkCode() + "\n")//工单号
;
//设备编码
if (StringUtils.isNotEmpty(equRepairWorkOrder.getEquipmentCode())) {
contentInfo = contentInfo.replace("${equipmentCode}", equRepairWorkOrder.getEquipmentCode() + "\n");
} else {
contentInfo = contentInfo.replace("${equipmentCode}", "无" + "\n");
}
//设备名称
if (StringUtils.isNotEmpty(equRepairWorkOrder.getEquipmentName())) {
contentInfo = contentInfo.replace("${equipmentName}", equRepairWorkOrder.getEquipmentName() + "\n");
} else {
contentInfo = contentInfo.replace("${equipmentName}", "无" + "\n");
}
//维修人
if (StringUtils.isNotEmpty(equRepairWorkOrder.getWorkPersonName())) {
contentInfo = contentInfo.replace("${workPersonName}", equRepairWorkOrder.getWorkPersonName() + "\n");
} else {
contentInfo = contentInfo.replace("${workPersonName}", "无" + "\n");
}
Pattern p = Pattern.compile("<[^>]+>");
Matcher m = p.matcher(contentInfo);
contentInfo = m.replaceAll("");
System.out.println(contentInfo);
wechart0.setText(contentInfo);
wecharts.add(wechart0);
}
logger.info("维修审核企业微信提醒请求:" + JSONObject.toJSONString(wecharts));
if (!CollectionUtils.isEmpty(wecharts)) {
new Thread(() -> {
AjaxResult wxResult = remoteOpenService.sendWeChartMessage(wecharts);
logger.info("维修审核企业微信提醒:" + JSONObject.toJSONString(wxResult));
}).start();
}
//发企业微信--------------------结束
}
return success("提交成功,维修完成!");
}
/**
@ -1296,4 +1366,30 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
SparePartsLedger list = sparePartsLedgerMapper.selectSpareDetailBySpareCode(spareCode);
return success(list);
}
/**
*
*
* @param
* @return
*/
@Override
@DS("#header.poolName")
public AjaxResult getBXList(EquRepairOrder equRepairOrder) {
List<EquRepairOrder> list = equRepairOrderMapper.selectEquRepairOrderList(equRepairOrder);
return success(list);
}
/**
*
*
* @param
* @return
*/
@Override
@DS("#header.poolName")
public AjaxResult getWXList(EquRepairWorkOrder equRepairWorkOrder) {
List<EquRepairWorkOrder> list = equRepairWorkOrderMapper.selectEquRepairWorkOrderList(equRepairWorkOrder);
return success(list);
}
}

@ -149,7 +149,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService {
}
/**
*
*
**/
@Override
public AjaxResult createMaintenancePlanTask() {
@ -336,9 +336,9 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService {
String serialNum = String.format("%03d", equOrderMapper.selectSerialNumber());
String orderCode = "O" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + serialNum;
order.setOrderCode(orderCode);
//todo 工厂号
if ("1".equals(plan.getUpkeep())) {//1委外工单
order.setOutsourceCode("BW" + orderCode);
order.setOutsourceCode("WW" + orderCode);
}
if(StringUtils.isNotEmpty(plan.getEquipmentCode())){

@ -233,7 +233,7 @@ public class EquOrderServiceImpl implements IEquOrderService {
if (repairOrder == null) {
return error(500, "未查询到报修单信息!");
} else {
if (!repairOrder.getOrderStatus().equals("待审核")) {
if (!repairOrder.getOrderStatus().equals("2")) {
return error(500, "报修单已审核,不可修改记录!");
}
}
@ -368,7 +368,7 @@ public class EquOrderServiceImpl implements IEquOrderService {
if (equOrder.getPlanType().equals("maintenance")) {
equRepairOrder.setOrderSource("保养");
}
equRepairOrder.setOrderStatus("待审核");
equRepairOrder.setOrderStatus("2");
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", ""));

@ -9,12 +9,9 @@ import com.op.common.security.utils.SecurityUtils;
import com.op.device.domain.EquEquipment;
import com.op.device.domain.EquRepairWorkOrder;
import com.op.device.domain.Equipment;
import com.op.device.mapper.EquOrderMapper;
import com.op.device.mapper.EquRepairWorkOrderMapper;
import com.op.device.mapper.EquipmentMapper;
import com.op.device.mapper.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.op.device.mapper.EquOutsourceWorkMapper;
import com.op.device.domain.EquOutsourceWork;
import com.op.device.service.IEquOutsourceWorkService;
import org.springframework.web.context.request.RequestContextHolder;
@ -42,7 +39,6 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService {
@Autowired
private EquipmentMapper equipmentMapper;
/**
*
*
@ -90,28 +86,85 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService {
String key = "#header.poolName";
equOutsourceWork.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", ""));
////修改工单状态、设备状态
if (equOutsourceWork.getWorkStatus().equals("1") && equOutsourceWork.getWorkType().equals("0")) {
//更新维修工单状态
equRepairWorkOrderMapper.updateWorkStatus(equOutsourceWork.getRepairCode());
//todo 委外也需要审核
//todo 故障
////修改设备状态
EquEquipment example = new EquEquipment();
example.setEquipmentCode(equOutsourceWork.getEquipmentCode());
Equipment equipment = equipmentMapper.selectEquipmentByEquipmentCode(equOutsourceWork.getEquipmentCode());
//如果未完成工单
if(equOutsourceWork.getWorkStatus().equals("0")){
//如果是委外维修
if (equOutsourceWork.getWorkType().equals("0")) {
//1.修改设备状态 正常运行1--->故障0
if (equipment.getEquipmentStatus().equals("1")) {
example.setEquipmentStatus("0");
equRepairWorkOrderMapper.updateEquipmentStatus(example);
//2.修改设备状态 保养中3---->维修保养中4
}else if (equipment.getEquipmentStatus().equals("3")) {
example.setEquipmentStatus("4");
equRepairWorkOrderMapper.updateEquipmentStatus(example);
}
//原来是故障0/维修中2/维修保养中4 什么都不改变
//如果是委外保养
} else if (equOutsourceWork.getWorkType().equals("1")) {
//1.修改设备状态维修中2----->维修保养中4
if (equipment.getEquipmentStatus().equals("2")) {
example.setEquipmentStatus("4");
equRepairWorkOrderMapper.updateEquipmentStatus(example);
//2.正常1--->保养中
}else if (equipment.getEquipmentStatus().equals("1")) {
example.setEquipmentStatus("3");
equRepairWorkOrderMapper.updateEquipmentStatus(example);
//3.故障0 和 维修---->维修保养中4
}else if (equipment.getEquipmentStatus().equals("0")) {
example.setEquipmentStatus("4");
equRepairWorkOrderMapper.updateEquipmentStatus(example);
}
//维修保养中不变 保养中不变
}
}
//如果完成工单
if (equOutsourceWork.getWorkStatus().equals("1") && equOutsourceWork.getWorkType().equals("0")) {
//1.如果是完成委外 查看是否存在维修单 存在的话改维修单状态 改设备状态 WorkType 0 维修委外
//1.1 更新维修工单状态
equRepairWorkOrderMapper.updateWorkStatus(equOutsourceWork.getRepairCode());
//todo 按照正常来说应该加一个审核再 修改设备状态 改为正常运行
//1.2 更新设备状态
//设备状态 故障0/维修中2--->正常运行1
if(equipment.getEquipmentStatus().equals("0") || equipment.getEquipmentStatus().equals("2")){
example.setEquipmentStatus("1");
equRepairWorkOrderMapper.updateEquipmentStatus(example);
//设备状态 维修保养中4--->保养中3
}else if(equipment.getEquipmentStatus().equals("4")){
example.setEquipmentStatus("3");
equRepairWorkOrderMapper.updateEquipmentStatus(example);
}
//修改设备状态 改为正常运行
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(equOutsourceWork.getEquipmentCode());
equEquipment.setEquipmentStatus("1");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
} else if (equOutsourceWork.getWorkStatus().equals("1") && equOutsourceWork.getWorkType().equals("1")) {
//2.如果是完成委外 查看是否存在保养 存在的话改保养单状态 改设备状态 WorkType 1 保养委外
//更新保养工单状态
equOrderMapper.updateEquOrderStatusComplete(equOutsourceWork.getRepairCode());
//todo 按照正常来说应该加一个审核再 修改设备状态 改为正常运行
//修改设备状态 改为正常运行
//查找当前运行的设备信息 如果是维修中则不改 维修>保养
EquEquipment example = new EquEquipment();
example.setEquipmentCode(equOutsourceWork.getEquipmentCode());
Equipment equipment = equipmentMapper.selectEquipmentByEquipmentCode(equOutsourceWork.getEquipmentCode());
if (equipment.getEquipmentStatus().equals("3")) {
//2.2 更新设备状态
//设备状态 保养中3--->正常运行1
if(equipment.getEquipmentStatus().equals("3")){
example.setEquipmentStatus("1");
equRepairWorkOrderMapper.updateEquipmentStatus(example);
//设备状态 维修保养中4--->维修中2
}else if(equipment.getEquipmentStatus().equals("4")){
example.setEquipmentStatus("2");
equRepairWorkOrderMapper.updateEquipmentStatus(example);
}
}
@ -127,28 +180,44 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService {
@Override
@DS("#header.poolName")
public int updateEquOutsourceWork(EquOutsourceWork equOutsourceWork) {
//1完成委外更新工单状态
if (equOutsourceWork.getWorkStatus().equals("1") && equOutsourceWork.getWorkType().equals("0")) {
//更新维修工单状态
equRepairWorkOrderMapper.updateWorkStatus(equOutsourceWork.getRepairCode());
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(equOutsourceWork.getEquipmentCode());
Equipment equipment = equipmentMapper.selectEquipmentByEquipmentCode(equOutsourceWork.getEquipmentCode());
if (equOutsourceWork.getWorkStatus().equals("1") && equOutsourceWork.getWorkType().equals("0")) {
//1.如果是完成委外 查看是否存在维修单 存在的话改维修单状态 改设备状态 WorkType 0 维修委外
//1.1 更新维修工单状态
equRepairWorkOrderMapper.updateWorkStatus(equOutsourceWork.getRepairCode());
//todo 按照正常来说应该加一个审核再 修改设备状态 改为正常运行
//1.2 更新设备状态
//设备状态 故障0/维修中2--->正常运行1
if(equipment.getEquipmentStatus().equals("0") || equipment.getEquipmentStatus().equals("2")){
equEquipment.setEquipmentStatus("1");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
//设备状态 维修保养中4--->保养中3
}else if(equipment.getEquipmentStatus().equals("4")){
equEquipment.setEquipmentStatus("3");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
}
//修改设备状态 改为正常运行
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(equOutsourceWork.getEquipmentCode());
equEquipment.setEquipmentStatus("1");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
} else if (equOutsourceWork.getWorkStatus().equals("1") && equOutsourceWork.getWorkType().equals("1")) {
//2.如果是完成委外 查看是否存在保养 存在的话改保养单状态 改设备状态 WorkType 1 保养委外
//更新保养工单状态
equOrderMapper.updateEquOrderStatusComplete(equOutsourceWork.getRepairCode());
//todo 按照正常来说应该加一个审核再 修改设备状态 改为正常运行
//修改设备状态 改为正常运行
//查找当前运行的设备信息 如果是维修中则不改 维修>保养
EquEquipment example = new EquEquipment();
example.setEquipmentCode(equOutsourceWork.getEquipmentCode());
Equipment equipment = equipmentMapper.selectEquipmentByEquipmentCode(equOutsourceWork.getEquipmentCode());
if (equipment.getEquipmentStatus().equals("3")) {
example.setEquipmentStatus("1");
equRepairWorkOrderMapper.updateEquipmentStatus(example);
//2.2 更新设备状态
//设备状态 保养中3--->正常运行1
if(equipment.getEquipmentStatus().equals("3")){
equEquipment.setEquipmentStatus("1");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
//设备状态 维修保养中4--->维修中2
}else if(equipment.getEquipmentStatus().equals("4")){
equEquipment.setEquipmentStatus("2");
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
}
}

@ -153,7 +153,7 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
equRepairOrder.setOrderCode("BX" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum);
equRepairOrder.setCreateTime(DateUtils.getNowDate());
equRepairOrder.setCreateBy(SecurityUtils.getUsername());
equRepairOrder.setOrderStatus("待审核");
equRepairOrder.setOrderStatus("2");
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", ""));
@ -300,12 +300,12 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
////审核结果
equRepairOrder.setOrderStatus("审核通过");
equRepairOrder.setOrderStatus("1");
////发送微信通知
AjaxResult repairSendWeChatResult = repairSendWeChat(equRepairWorkOrder);
} else if (equRepairOrder.getRepairDestination().equals("不维修")) {
equRepairOrder.setOrderStatus("驳回");
equRepairOrder.setOrderStatus("0");
} else if (equRepairOrder.getRepairDestination().equals("委外维修")) {
EquOutsourceWork equOutsourceWork = new EquOutsourceWork();
equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID()); //id
@ -320,9 +320,11 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
equOutsourceWork.setWorkType("0"); //委外类型 维修委外
equOutsourceWork.setCreateBy(SecurityUtils.getUsername());
equOutsourceWork.setCreateTime(DateUtils.getNowDate());
equOutsourceWork.setDelFlag("0"); //删除标识
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
equOutsourceWork.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", ""));
////更新委外列表
equOutsourceWorkMapper.insertEquOutsourceWork(equOutsourceWork);
@ -332,7 +334,7 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
equEquipment.setEquipmentStatus("0"); //0 故障
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
equRepairOrder.setOrderStatus("审核通过");
equRepairOrder.setOrderStatus("1");
} else if (equRepairOrder.getRepairDestination().equals("立即维修")) {
EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder();
equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID()); //维修工单id
@ -362,7 +364,7 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService {
equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder);
////审核结果
equRepairOrder.setOrderStatus("审核通过");
equRepairOrder.setOrderStatus("1");
////更新设备状态
EquEquipment equEquipment = new EquEquipment();

@ -14,6 +14,7 @@ import java.util.stream.Collectors;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.domain.BaseFileData;
import com.op.common.core.exception.auth.NotLoginException;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.StringUtils;
import com.op.common.core.utils.uuid.IdUtils;
@ -25,6 +26,7 @@ import com.op.device.mapper.*;
import com.op.system.api.RemoteOpenService;
import com.op.system.api.domain.SysNoticeGroup;
import com.op.system.api.domain.dto.WechartDTO;
import org.omg.CORBA.CompletionStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -303,7 +305,7 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
}
/**
*
*
*
* @param equRepairWorkOrder
* @return
@ -312,6 +314,13 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
@DS("#header.poolName")
// @Transactional//增加事务注解,出错时自动回滚
public AjaxResult write(EquRepairWorkOrder equRepairWorkOrder) {
EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equRepairWorkOrder.getEquipmentCode());
if(equ == null){
//不应该用登录的 todo
throw new NotLoginException("设备表中不存在此设备,请确认!");
}
////0.今日时间
Date date = DateUtils.getNowDate();
@ -387,25 +396,93 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
equOrderStandardMapper.updateStandardAfterRepair(equOrderStandard);
}
//5.更新运行表 + 更新设备表
if (equRepairWorkOrder.getWorkStatus().equals("1")) {
int updateOperation = updateEquOperation(equRepairWorkOrder,date);
}
// 备件费用
// BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equRepairWorkOrder.getOrderCode());
// BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost()));
// equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost)));
equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder);
// BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equRepairWorkOrder.getOrderCode());
// BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost()));
// equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost)));
equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder);
////4.发送微信提醒
//发企业微信--------------------开始(跟班组有关)
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
//规范时间格式
SysNoticeGroup noticeQo = new SysNoticeGroup();
noticeQo.setNoticeId(22L);
EquTeamUser equTeamUser = new EquTeamUser();
equTeamUser.setUserName(SecurityUtils.getUsername());
List<SysNoticeGroup> notices = equRepairOrderMapper.getNoticesGroup(noticeQo);
if(!CollectionUtils.isEmpty(notices)) {
List<WechartDTO> wecharts = new ArrayList<>();
List<String> userCodes = notices.stream()
.map(SysNoticeGroup::getUserCode)
.collect(Collectors.toList());
for (SysNoticeGroup noticeDto : notices) {
WechartDTO wechart0 = new WechartDTO();
wechart0.setUserId(noticeDto.getWxId());
String contentInfo = noticeDto.getNoticeContent();
contentInfo = contentInfo
.replace("${n}", "\n");
//工单号
if(StringUtils.isNotEmpty(equRepairWorkOrder.getWorkCode())){
contentInfo = contentInfo.replace("${workCode}", equRepairWorkOrder.getWorkCode() +"\n");
}else{
contentInfo = contentInfo.replace("${workCode}", "无"+"\n");
}
//设备编码
if(StringUtils.isNotEmpty(equRepairWorkOrder.getEquipmentCode())){
contentInfo = contentInfo.replace("${equipmentCode}", equRepairWorkOrder.getEquipmentCode() +"\n");
}else{
contentInfo = contentInfo.replace("${equipmentCode}", "无"+"\n");
}
//设备名称
if(StringUtils.isNotEmpty(equRepairWorkOrder.getEquipmentName())){
contentInfo = contentInfo.replace("${equipmentName}", equRepairWorkOrder.getEquipmentName() +"\n");
}else{
contentInfo = contentInfo.replace("${equipmentName}", "无"+"\n");
}
//维修人
if(StringUtils.isNotEmpty(equRepairWorkOrder.getWorkPersonName())){
contentInfo = contentInfo.replace("${workPersonName}", equRepairWorkOrder.getWorkPersonName() +"\n");
}else{
contentInfo = contentInfo.replace("${workPersonName}", "无"+"\n");
}
Pattern p= Pattern.compile("<[^>]+>");
Matcher m = p.matcher(contentInfo);
contentInfo = m.replaceAll("");
System.out.println(contentInfo);
wechart0.setText(contentInfo);
wecharts.add(wechart0);
}
logger.info("维修审核企业微信提醒请求:" + JSONObject.toJSONString(wecharts));
if (!CollectionUtils.isEmpty(wecharts)) {
new Thread(() -> {
AjaxResult wxResult = remoteOpenService.sendWeChartMessage(wecharts);
logger.info("维修审核企业微信提醒:" + JSONObject.toJSONString(wxResult));
}).start();
}
//发企业微信--------------------结束
}
return success("提交成功,维修完成!");
}
//5.更新运行表 + 设备表
private int updateEquOperation(EquRepairWorkOrder equRepairWorkOrder,Date date) {
//5.1时间
//更新运行表 + 设备表
private String updateEquOperation(EquRepairWorkOrder equRepairWorkOrder) {
String msg = "";
//1.时间
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
String formattedDate = dateFormat.format(date);
String formattedDate = dateFormat.format(DateUtils.getNowDate());
//5.2维修完成后 相应的设备完好率重新计算 小时计算 保留一位小数 实际故障时间 换算成小时
//2.维修完成后 相应的设备完好率重新计算 小时计算 保留一位小数 实际故障时间 换算成小时
if(equRepairWorkOrder.getWorkDownMachine().equals("0")){
equRepairWorkOrder.setFaultDownTime("0.0小时");
}
@ -461,20 +538,27 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
equOperation.setRepairPerson(formattedDate + ":" + equRepairWorkOrder.getWorkPerson() + ";");
}
}
//当获取的设备运行记录为空的时候,代表没有生成,这块让上位机卡住 todo
//5.3设备状态描述 由什么状态转为什么状态,修改设备状态 由维修中改为正常运行
//3设备状态描述 由什么状态转为什么状态,修改设备状态 由维修中改为正常运行
EquEquipment equEquipment = new EquEquipment();
equEquipment.setEquipmentCode(equRepairWorkOrder.getEquipmentCode());
EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equEquipment.getEquipmentCode());
String equStatus = "";
//todo 维修保养中 和维修中 和保养中!!!!!!!!!!!!!!!!!!!!!!! 需要修改状态
if(equ.getEquipmentStatus().equals("0")){
equStatus = "设备状态由故障转为正常运行;";
}else if(equ.getEquipmentStatus().equals("2")){
equStatus = "设备状态由维修中转为正常运行;";
}else if(equ.getEquipmentStatus().equals("1")){
equStatus = "设备状态在审核前,已由其他人员修改为正常;";
msg = "【"+equRepairWorkOrder.getEquipmentCode()+"】"+"设备状态在审核前,已由其他人员修改为正常!";
logger.info(msg);
} else if(equ.getEquipmentStatus().equals("4")){
equStatus = "设备状态由维修保养中转为保养中;";
}else if(equ.getEquipmentStatus() == null){
throw new NotLoginException("设备表中,此设备状态为空!");
}
// else if(equ.getEquipmentStatus().equals("4")){
// equStatus = "设备状态由维修保养中转为保养中;";
// }
if (equOperation.getEquStatusDes() == null || equOperation.getEquStatusDes().equals("")) {
equOperation.setEquStatusDes(formattedDate + ":" + equStatus);
@ -482,14 +566,14 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
equOperation.setEquStatusDes(equOperation.getEquStatusDes() + formattedDate + equStatus);//设备状态描述
}
if(equ.getEquipmentStatus().equals("0") || equ.getEquipmentStatus().equals("2")){
if(equ.getEquipmentStatus().equals("0") || equ.getEquipmentStatus().equals("2")|| equ.getEquipmentStatus().equals("1")){
equEquipment.setEquipmentStatus("1");
} else if(equ.getEquipmentStatus().equals("4")){//如果是4维修保养中改为保养中
equEquipment.setEquipmentStatus("3");
}
// else if(equ.getEquipmentStatus().equals("4")){//如果是维修保养中,改为保养中
// equEquipment.setEquipmentStatus("3");
// }
equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment);
return equOperationMapper.updateEquOperation(equOperation);
equOperationMapper.updateEquOperation(equOperation);
return msg;
}
/**
@ -560,21 +644,47 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
}
/**
*
*
* PC
*
* @param upKeepOrderDTO
* @return
*/
@Override
@DS("#header.poolName")
public AjaxResult subInspect(UpKeepOrderDTO upKeepOrderDTO) {
public AjaxResult checkRepairWorkOrder(UpKeepOrderDTO upKeepOrderDTO) {
String msg = "";
List<String> ids = upKeepOrderDTO.getIds();
for (String id : ids) {
EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder();
equRepairWorkOrder.setWorkId(id);
String resultInspect = upKeepOrderDTO.getInspect();
equRepairWorkOrder.setResultInspect(resultInspect);
//1.1 审核通过后 更新运行表 + 更新设备表 1审核通过
EquRepairWorkOrder dto = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(id);
if (dto.getWorkStatus().equals("1") && resultInspect.equals("1")) {
msg = updateEquOperation(dto);
//2.1
equRepairWorkOrder.setResultInspect(resultInspect);//审核状态为完成
}
//1.2 如果审核驳回 回退到待维修状态 0审核驳回
if(dto.getWorkStatus().equals("1") && resultInspect.equals("0")){
dto.setWorkStatus("0");//待维修
dto.setWorkEndTime(null);//工单结束时间空 工单开始的时间是从第一次开始的
// todo 当待维修的时候,要判断一下 有没有开始时间 如果有的话,不能覆盖掉 这个做完了 等待检查
dto.setWorkCostTime(null);//工单花费时间
dto.setFaultDownTime(null);//故障停机时间
dto.setActualDownEndTime(null);//故障停机时间
equRepairWorkOrderMapper.returnRepairWorkOrder(dto);
//2.2
equRepairWorkOrder.setResultInspect("2");//审核状态为待审核
}
//2.审核状态更新完成
equRepairWorkOrderMapper.updateResultInspect(equRepairWorkOrder);
//2.3 todo 被驳回之后,需要再次发微信消息给维修班组吗???目前是在审核后通知的时候 会在备注里面
}
String workCodes = "";
@ -585,11 +695,11 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
String inspect = "";
if(upKeepOrderDTO.getInspect().equals("0")){
inspect = "不通过" ;
inspect = "驳回" ;
}else if(upKeepOrderDTO.getInspect().equals("1")){
inspect = "通过" ;
inspect = "审核通过" ;
}else{
inspect = "待检验" ;
inspect = "待审核" ;
}
//发企业微信--------------------开始(跟班组有关)
@ -632,6 +742,15 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
contentInfo = contentInfo.replace("${checkPeople}", "无"+"\n");
}
//备注 备注和驳回有关系
if(inspect.equals("驳回") && StringUtils.isNotEmpty(upKeepOrderDTO.getAuditOpinion())){
contentInfo = contentInfo.replace("${remark}", "工单被审核人驳回,驳回理由为【"+upKeepOrderDTO.getAuditOpinion()+"】请再次进行维修!"+"\n");
}else if(inspect.equals("驳回") && StringUtils.isEmpty(upKeepOrderDTO.getAuditOpinion())){
contentInfo = contentInfo.replace("${remark}", "工单被审核人驳回,请再次进行维修!"+"\n");
}else{
contentInfo = contentInfo.replace("${remark}", "无"+"\n");
}
Pattern p= Pattern.compile("<[^>]+>");
Matcher m = p.matcher(contentInfo);
contentInfo = m.replaceAll("");
@ -640,17 +759,21 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService
wechart0.setText(contentInfo);
wecharts.add(wechart0);
}
logger.info("维修结果检验企业微信提醒请求:" + JSONObject.toJSONString(wecharts));
logger.info("维修审核结果企业微信提醒请求:" + JSONObject.toJSONString(wecharts));
if (!CollectionUtils.isEmpty(wecharts)) {
new Thread(() -> {
AjaxResult wxresult = remoteOpenService.sendWeChartMessage(wecharts);
logger.info("维修结果检验企业微信提醒结果" + JSONObject.toJSONString(wxresult));
logger.info("维修审核结果企业微信提醒:" + JSONObject.toJSONString(wxresult));
}).start();
}
//发企业微信--------------------结束
}
return success();
if(msg.equals("")){
msg = "审核成功!";
}
return success(msg);
}
}

@ -30,6 +30,7 @@
<result property="updateTime" column="update_time"/>
<result property="factoryCode" column="factory_code"/>
<result property="repairDestination" column="repair_destination"/>
<result property="auditOpinion" column="audit_opinion"/>
<!-- 设备 -->
<result property="equipmentTypeName" column="equipment_type_name"/>
<result property="equipmentName" column="equipment_name"/>
@ -75,41 +76,26 @@
</sql>
<sql id="selectEquRepairOrderVo">
select order_id, order_code, equipment_code, order_desc, order_breakdown_time, order_source, order_time, order_handle, order_repairman_code,order_repairman_name, order_connection, order_status, order_relevance, order_picture, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time,factory_code,repair_destination from equ_repair_order
select order_id, order_code, equipment_code, order_desc, order_breakdown_time, order_source, order_time, order_handle, order_repairman_code,order_repairman_name, order_connection, order_status, order_relevance, order_picture, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time,factory_code,repair_destination,audit_opinion from equ_repair_order
</sql>
<select id="selectEquRepairOrderList" parameterType="EquRepairOrder" resultMap="EquRepairOrderResult">
<include refid="selectEquRepairOrderVo"/>
<where>
<if test="orderCode != null and orderCode != ''">and order_code like concat('%', #{orderCode}, '%')</if>
<if test="equipmentCode != null and equipmentCode != ''">and equipment_code like concat('%',
#{equipmentCode}, '%')
</if>
<if test="equipmentCode != null and equipmentCode != ''">and equipment_code like concat('%',#{equipmentCode}, '%')</if>
<if test="orderDesc != null and orderDesc != ''">and order_desc like concat('%', #{orderDesc}, '%')</if>
<!--故障开始时间 结束时间-->
<if test="orderBreakdownTimeStart != null ">and CONVERT(date,order_breakdown_time) >=
#{orderBreakdownTimeStart}
</if>
<if test="orderBreakdownTimeEnd != null ">and #{orderBreakdownTimeEnd} >=
CONVERT(date,order_breakdown_time)
</if>
<if test="orderSource != null and orderSource != ''">and order_source like concat('%', #{orderSource},
'%')
</if>
<if test="orderBreakdownTimeStart != null ">and CONVERT(date,order_breakdown_time) >= #{orderBreakdownTimeStart}</if>
<if test="orderBreakdownTimeEnd != null ">and #{orderBreakdownTimeEnd} >= CONVERT(date,order_breakdown_time)</if>
<if test="orderSource != null and orderSource != ''">and order_source like concat('%', #{orderSource},'%')</if>
<!--报修开始时间 结束时间-->
<if test="orderTimeStart != null ">and CONVERT(date,order_time) >= #{orderTimeStart}</if>
<if test="orderTimeEnd != null ">and #{orderTimeEnd} >= CONVERT(date,order_time)</if>
<if test="orderHandle != null and orderHandle != ''">and order_handle = #{orderHandle}</if>
<if test="orderRepairmanCode != null and orderRepairmanCode != ''">and order_repairman_code like
concat('%', #{orderRepairmanCode}, '%')
</if>
<if test="orderRepairmanName != null and orderRepairmanName != ''">and order_repairman_name like
concat('%', #{orderRepairmanName}, '%')
</if>
<if test="orderConnection != null and orderConnection != ''">and order_connection like concat('%',
#{orderConnection}, '%')
</if>
<if test="orderStatus != null and orderStatus != ''">and order_status = #{orderStatus}</if>
<if test="orderRepairmanCode != null and orderRepairmanCode != ''">and order_repairman_code like concat('%', #{orderRepairmanCode}, '%')</if>
<if test="orderRepairmanName != null and orderRepairmanName != ''">and order_repairman_name like concat('%', #{orderRepairmanName}, '%')</if>
<if test="orderConnection != null and orderConnection != ''">and order_connection like concat('%',#{orderConnection}, '%')</if>
<if test="orderRelevance != null and orderRelevance != ''">and order_relevance = #{orderRelevance}</if>
<if test="orderPicture != null and orderPicture != ''">and order_picture = #{orderPicture}</if>
<if test="attr1 != null and attr1 != ''">and attr1 = #{attr1}</if>
@ -118,9 +104,10 @@
<if test="createTime != null and createTime != ''">and create_time = #{createTime}</if>
<if test="createBy != null and createBy != ''">and create_by = #{createBy}</if>
<if test="factoryCode != null and factoryCode != ''">and factory_code = #{factoryCode}</if>
<if test="repairDestination != null and repairDestination != ''">and repair_destination =
#{repairDestination}
</if>
<if test="repairDestination != null and repairDestination != ''">and repair_destination =#{repairDestination}</if>
<!--审核-->
<if test="orderStatus == null or orderStatus == '' ">and (order_status = '2' or order_status = '1')</if>
<if test="orderStatus != null and orderStatus != '' ">and order_status = #{orderStatus} </if>
and del_flag = '0'
ORDER BY create_time DESC
</where>
@ -148,6 +135,7 @@
ero.update_time,
ero.factory_code,
ero.repair_destination,
ero.audit_opinion,
be.equipment_name,
be.equipment_type_name,
be.equipment_spec,
@ -197,6 +185,7 @@
<if test="updateTime != null">update_time,</if>
<if test="factoryCode != null">factory_code,</if>
<if test="repairDestination != null">repair_destination,</if>
<if test="auditOpinion != null">audit_opinion,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="orderId != null">#{orderId},</if>
@ -223,6 +212,7 @@
<if test="updateTime != null">#{updateTime},</if>
<if test="factoryCode != null">#{factoryCode},</if>
<if test="repairDestination != null">#{repairDestination},</if>
<if test="auditOpinion != null">#{auditOpinion},</if>
</trim>
</insert>
@ -252,6 +242,7 @@
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="factoryCode != null">factory_code = #{factoryCode},</if>
<if test="repairDestination != null">repair_destination = #{repairDestination},</if>
<if test="auditOpinion != null">audit_opinion = #{auditOpinion},</if>
</trim>
where order_id = #{orderId}
</update>

@ -47,7 +47,8 @@
<result property="faultDownTime" column="fault_down_time"/>
<result property="faultStartTime" column="fault_start_time"/>
<result property="resultInspect" column="result_inspect"/>
<result property="remark" column="remark"/>
<result property="auditOpinion" column="audit_opinion"/>
<!--设备-->
<result property="equipmentName" column="equipment_name"/>
<result property="equipmentSpec" column="equipment_spec"/>
@ -92,7 +93,7 @@
</sql>
<sql id="selectEquRepairWorkOrderVo">
select work_id, order_id, order_code, work_code,work_handle, work_plan_time, work_plan_down_time, order_relevance, work_person, work_team, work_outsource, work_down_machine, equipment_code, work_reason, work_fault_desc, work_start_time,work_end_time,work_cost_time, work_cost, work_status,out_work_id, out_work_code, attr1, attr2, attr3, create_by, create_time, update_time, update_by, del_flag, factory_code , fault_type , equipment_status_description , repair_measures , fault_down_time , fault_start_time ,result_inspect,work_person_name from equ_repair_work_order
select work_id, order_id, order_code, work_code,work_handle, work_plan_time, work_plan_down_time, order_relevance, work_person, work_team, work_outsource, work_down_machine, equipment_code, work_reason, work_fault_desc, work_start_time,work_end_time,work_cost_time, work_cost, work_status,out_work_id, out_work_code, attr1, attr2, attr3, create_by, create_time, update_time, update_by, del_flag, factory_code , fault_type , equipment_status_description , repair_measures , fault_down_time , fault_start_time ,result_inspect,work_person_name,remark,audit_opinion from equ_repair_work_order
</sql>
<select id="selectEquRepairWorkOrderList" parameterType="EquRepairWorkOrder" resultMap="EquRepairWorkOrderResult">
@ -138,6 +139,7 @@
erwo.fault_down_time,
erwo.fault_start_time,
erwo.result_inspect,
erwo.remark,
be.equipment_name,
et.team_name,
et.team_person
@ -145,6 +147,9 @@
left join base_equipment be on erwo.equipment_code = be.equipment_code
left join equ_team et on erwo.work_team = et.team_code
<where>
<!--审核-->
<if test="resultInspect == null or resultInspect == '' ">and ( erwo.result_inspect = '2' or erwo.result_inspect = '1')</if>
<if test="resultInspect != null and resultInspect != '' ">and erwo.result_inspect = #{resultInspect} </if>
<!--报修id 维修code 报修code-->
<if test="orderId != null and orderId != ''">and erwo.order_id = #{orderId}</if>
<if test="workCode != null and workCode != ''">and erwo.work_code like concat('%', #{workCode}, '%')</if>
@ -236,6 +241,8 @@
erwo.fault_down_time,
erwo.fault_start_time,
erwo.result_inspect,
erwo.remark,
erwo.audit_opinion,
be.equipment_name,
et.team_name,
et.team_person
@ -290,6 +297,8 @@
erwo.fault_down_time,
erwo.fault_start_time,
erwo.result_inspect,
erwo.remark,
erwo.audit_opinion,
be.equipment_name,
be.equipment_spec,
be.equipment_type_name,
@ -360,6 +369,8 @@
<if test="faultDownTime != null">fault_down_time,</if>
<if test="faultStartTime != null">fault_start_time,</if>
<if test="resultInspect != null">result_inspect,</if>
<if test="remark != null">remark,</if>
<if test="auditOpinion != null">audit_opinion,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="workId != null">#{workId},</if>
@ -403,6 +414,8 @@
<if test="faultDownTime != null">#{faultDownTime},</if>
<if test="faultStartTime != null">#{faultStartTime},</if>
<if test="resultInspect != null">#{resultInspect},</if>
<if test="remark != null">#{remark},</if>
<if test="auditOpinion != null">#{auditOpinion},</if>
</trim>
</insert>
@ -448,6 +461,8 @@
<if test="repairMeasures != null">repair_measures = #{repairMeasures},</if>
<if test="faultDownTime != null">fault_down_time = #{faultDownTime},</if>
<if test="faultStartTime != null">fault_start_time = #{faultStartTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="auditOpinion != null">audit_opinion = #{auditOpinion},</if>
</trim>
where work_id = #{workId}
and del_flag = '0'
@ -456,7 +471,8 @@
<update id="updateResultInspect" parameterType="EquRepairWorkOrder">
update equ_repair_work_order
set
result_inspect = #{resultInspect}
result_inspect = #{resultInspect},
audit_opinion = #{auditOpinion}
where work_id = #{workId}
</update>
@ -554,4 +570,16 @@
and del_flag = '0'
</update>
<update id="returnRepairWorkOrder" parameterType="EquRepairWorkOrder">
update equ_repair_work_order
set
work_status = #{workStatus},
fault_down_time = #{faultDownTime},
work_end_time = #{workEndTime},
work_cost_time = #{workCostTime},
actual_down_end_time = #{actualDownEndTime}
where work_id = #{workId}
and del_flag = '0'
</update>
</mapper>

@ -93,6 +93,7 @@ public class MesReportWorkConsume extends BaseEntity {
@Excel(name = "报工编码")
private String reportCode;
private BigDecimal quantityFeedback;
//虚拟字段
private String id;
private String parentOrder;
@ -117,6 +118,14 @@ public class MesReportWorkConsume extends BaseEntity {
private String erfmg;
private String erfme;
public BigDecimal getQuantityFeedback() {
return quantityFeedback;
}
public void setQuantityFeedback(BigDecimal quantityFeedback) {
this.quantityFeedback = quantityFeedback;
}
public String getErfmg() {
return erfmg;
}

@ -1,5 +1,6 @@
package com.op.mes.mapper;
import java.math.BigDecimal;
import java.util.List;
import com.op.mes.domain.MesReportWorkConsume;
@ -85,4 +86,6 @@ public interface MesReportWorkConsumeMapper {
List<MesReportWorkConsume> getSumConsumeList(MesReportWorkConsume consumeqo);
int getSumConsumeListNum(MesReportWorkConsume consumeqo);
BigDecimal getActAllProduct(MesReportWorkConsume mesReportWorkConsume);
}

@ -358,6 +358,12 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer
pTabs.setTitle("第"+i+"层工单物料损耗");
mesReportWorkConsume.setParentOrder("0");
List<MesReportWorkConsume> liblist0 = mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume);
if(!CollectionUtils.isEmpty(liblist0)){
BigDecimal actPro = mesReportWorkConsumeMapper.getActAllProduct(mesReportWorkConsume);
liblist0.get(0).setQuantityFeedback(actPro);
}
pTabs.setLibList(liblist0);
tabs.add(pTabs);

@ -82,7 +82,7 @@
from pro_order_workorder ow
left join mes_prepare mp on ow.workorder_code = mp.workorder_code
left join mes_prepare_detail mpd on mp.prepare_id = mpd.prepare_id
where ow.belong_work_order = #{workorderCode}
where ow.belong_work_order = #{workorderCode} and ow.del_flag = '0'
and mpd.recoil = #{recoil} and mp.del_flag = '0' and mpd.del_flag = '0'
order by mpd.recoil
</select>

@ -202,6 +202,9 @@
and mrw.machine_code = #{machineCode}
)t
</select>
<select id="getActAllProduct" resultType="java.math.BigDecimal">
select sum(quantity_feedback) from mes_report_work where workorder_code = #{workorderCode} and del_flag = '0'
</select>
<insert id="insertMesReportWorkConsume" parameterType="MesReportWorkConsume">
insert into mes_report_work_consume

@ -702,6 +702,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="productDateEnd != null and productDateEnd != ''">
and CONVERT(varchar(10), #{productDateEnd}, 23) >= CONVERT(varchar(10),pow.product_date, 23)
</if>
<if test="productCode != null and productCode != ''">and pow.product_code like concat('%', #{productCode}, '%')</if>
order by be.equipment_code
</select>

@ -303,7 +303,7 @@ public class OpenServiceImpl implements OpenService {
}
equRepairOrder.setCreateTime(DateUtils.getNowDate());
equRepairOrder.setCreateBy(equRepairOrderDTO.getUserName());
equRepairOrder.setOrderStatus("待审核"); // 报修单状态
equRepairOrder.setOrderStatus("2"); // 报修单状态
equRepairOrder.setFactoryCode(equRepairOrderDTO.getFactory()); // 工厂
if (equRepairOrderDTO.getPhoneNumber() != null) {
equRepairOrder.setOrderConnection(equRepairOrderDTO.getPhoneNumber()); // 联系方式

@ -174,6 +174,19 @@ public class QuaController extends BaseController {
}
return success(qcProCheckService.getCheckTaskDetailList(qcCheckTaskDetail));
}
/**
*
*/
@GetMapping(value = "getCheckTaskDetailListCg")
public AjaxResult getCheckTaskDetailListCg(QcCheckTaskDetail qcCheckTaskDetail) {
if(StringUtils.isBlank(qcCheckTaskDetail.getFactoryCode())){
return error("[factoryCode]不能为空");
}
if(StringUtils.isBlank(qcCheckTaskDetail.getBelongTo())){
return error("[belongTo]不能为空");
}
return success(qcProCheckService.getCheckTaskDetailListCg(qcCheckTaskDetail));
}
/**
*
*/

@ -216,6 +216,38 @@ public class QcCheckTaskIncome extends BaseEntity {
private String oaFactoryF;//异常范围
private String sccj;
private String bz;
/**
* cxzz:线()
* jgy:()
* pgy:()
*/
private String cxzz;
private String jgy;
private String pgy;
public String getCxzz() {
return cxzz;
}
public void setCxzz(String cxzz) {
this.cxzz = cxzz;
}
public String getJgy() {
return jgy;
}
public void setJgy(String jgy) {
this.jgy = jgy;
}
public String getPgy() {
return pgy;
}
public void setPgy(String pgy) {
this.pgy = pgy;
}
public String getBz() {
return bz;

@ -47,6 +47,8 @@ public interface QcCheckTaskIncomeMapper {
*/
public int insertQcCheckTaskIncome(QcCheckTaskIncome qcCheckTaskIncome);
int insertQcCheckTaskIncomeCg(QcCheckTaskIncome qcCheckTaskIncome);
/**
*
*
@ -82,6 +84,9 @@ public interface QcCheckTaskIncomeMapper {
List<QcCheckTaskDetail> getCkeckProjectList(QcCheckTaskDetail qcCheckTaskDetail);
int updateQcCheckTask(QcCheckTaskIncome qcCheckTask);
int updateQcCheckTaskCg(QcCheckTaskIncome qcCheckTask);
List<QcCheckTaskIncome> selectQcCheckTaskCgByRecordId(String recordId);
int updateQcCheckTaskDetails(@Param("list") List<QcCheckTaskDetail> details);
@ -107,6 +112,8 @@ public interface QcCheckTaskIncomeMapper {
QcCheckTaskIncome getTaskInfo(String recordId);
QcCheckTaskIncome getTaskInfoCg(String recordId);
int deleteQcCheckTaskDefects(String belongId);
List<QcCheckTaskIncome> getCkeckTaskXJList(QcCheckTaskIncome qcCheckTaskIncome);

@ -49,4 +49,6 @@ public interface QcInterfaceMapper {
@MapKey("nameDate")
Map<String, QcInterface> getLineChartsDatas(QcInterface qcInterface);
QcInterface getProduceHz1(QcInterface qcInterface);
}

@ -47,4 +47,6 @@ public interface QcProCheckService {
String getWeightInfo(QcCheckTaskDetail qcCheckTaskDetail);
QcCheckTaskDetail getAutoJudge(QcCheckTaskDetail qcCheckTaskDetail);
QcCheckTaskIncome getCheckTaskDetailListCg(QcCheckTaskDetail qcCheckTaskDetail);
}

@ -1,6 +1,7 @@
package com.op.quality.service.impl;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.regex.Matcher;
@ -432,7 +433,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
detail.setFileUrls(urls);
}
}
return dtos;
return dtos;
}
@Override
@ -610,7 +611,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
public List<QcCheckTaskIncome> getCkeckProjectXJList(QcCheckTaskIncome qcCheckTaskIncome) {
List<QcCheckTaskIncome> dtos = qcCheckTaskIncomeMapper.getCkeckTaskXJList(qcCheckTaskIncome);
for(QcCheckTaskIncome dto:dtos){
//不良分类
//不良分类
QcCheckTaskDefect defectqo = new QcCheckTaskDefect();
defectqo.setBelongTo(dto.getRecordId());
List<QcCheckTaskDefect> defects = qcCheckTaskDefectMapper.selectQcCheckTaskDefectList(defectqo);
@ -690,8 +691,59 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
qcCheckTask.setSampleQuality(qcCheckTaskIncome.getSampleQuality());
qcCheckTask.setReason(qcCheckTaskIncome.getReason());
qcCheckTask.setBz(qcCheckTaskIncome.getAttr3());//备注
qcCheckTask.setStartOA(qcCheckTaskIncome.getStartOA());
qcCheckTask.setTypeCode(qcCheckTaskIncome.getTypeCode());
/* 来料草稿 */
qcCheckTask.setOaFactory(qcCheckTaskIncome.getOaFactory());
qcCheckTask.setSupplierCode(qcCheckTaskIncome.getSupplierCode());
qcCheckTask.setSupplierName(qcCheckTaskIncome.getSupplierName());
qcCheckTask.setCzbjr(qcCheckTaskIncome.getCzbjr());
qcCheckTask.setZcf(qcCheckTaskIncome.getZcf());
qcCheckTask.setZcoemcm(qcCheckTaskIncome.getZcoemcm());
qcCheckTask.setQczg(qcCheckTaskIncome.getQczg());
qcCheckTask.setQuality(qcCheckTaskIncome.getQuality());
qcCheckTask.setUnit(qcCheckTaskIncome.getUnit());
qcCheckTask.setMaterialType(qcCheckTaskIncome.getMaterialType());
qcCheckTask.setMaterialFrom(qcCheckTaskIncome.getMaterialFrom());
/* 巡检草稿 */
qcCheckTask.setSqbm(qcCheckTaskIncome.getSqbm());// 所属部门
qcCheckTask.setCheckLoc(qcCheckTaskIncome.getCheckLoc()); // 发现地点
qcCheckTask.setOaFactoryF(qcCheckTaskIncome.getOaFactoryF());// 异常范围
qcCheckTask.setSfxyzg(qcCheckTaskIncome.getSfxyzg());// 是否需要主管审核
qcCheckTask.setPgzg(qcCheckTaskIncome.getPgzg());// QC主管
qcCheckTask.setPgzr(qcCheckTaskIncome.getPgzr()); // 质量主管
qcCheckTask.setSfgyswt(qcCheckTaskIncome.getSfgyswt());// 是否供应商
qcCheckTask.setSccj(qcCheckTaskIncome.getSccj());// 所属车间
qcCheckTask.setSqr(qcCheckTaskIncome.getSqr());// 申请人Id
/**qc_check_task_cg**/
n = qcCheckTaskIncomeMapper.updateQcCheckTask(qcCheckTask);//updateQcCheckTaskCG
List<QcCheckTaskIncome> valiData = qcCheckTaskIncomeMapper.selectQcCheckTaskCgByRecordId(belongId);
// 判断表中是否存在此条数据
if (valiData != null && valiData.size() > 0) {
n = qcCheckTaskIncomeMapper.updateQcCheckTaskCg(qcCheckTask);//updateQcCheckTaskCG
}else {
qcCheckTask.setCheckNo(qcCheckTaskIncome.getCheckNo());
qcCheckTask.setOrderNo(qcCheckTaskIncome.getOrderNo());
qcCheckTask.setMaterialCode(qcCheckTaskIncome.getMaterialCode());
qcCheckTask.setMaterialName(qcCheckTaskIncome.getMaterialName());
qcCheckTask.setOrderType(qcCheckTaskIncome.getOrderType());
qcCheckTask.setOrderTypeDesc(qcCheckTaskIncome.getOrderTypeDesc());
qcCheckTask.setCreateBy(qcCheckTaskIncome.getCreateBy());
qcCheckTask.setCreateTime(DateUtils.getNowDate());
qcCheckTask.setIncomeTime(qcCheckTaskIncome.getIncomeTime());
qcCheckTask.setFactoryCode(qcCheckTaskIncome.getFactoryCode());
qcCheckTask.setCheckType(qcCheckTaskIncome.getCheckType());
qcCheckTask.setaNoOkquality(qcCheckTaskIncome.getaNoOkquality());
qcCheckTask.setbNoOkquality(qcCheckTaskIncome.getbNoOkquality());
qcCheckTask.setcNoOkquality(qcCheckTaskIncome.getcNoOkquality());
n = qcCheckTaskIncomeMapper.insertQcCheckTaskIncomeCg(qcCheckTask);
}
logger.info("qc_check_task:"+n);
/**更新qc_check_task_detail**/
for(QcCheckTaskDetail detail:details){
@ -799,15 +851,16 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
qcCheckTask.setNoOkQuality(noOkQquality);//累计不合格数
qcCheckTask.setCheckManCode(qcCheckTaskIncome.getUpdateBy());
qcCheckTask.setCheckManName(qcCheckTaskIncome.getUpdateByName());
qcCheckTask.setSampleQuality(qcCheckTaskIncome.getSampleQuality());
qcCheckTask.setReason(qcCheckTaskIncome.getReason());
qcCheckTask.setBz(qcCheckTaskIncome.getAttr3());//备注
/**qc_check_task**/
n = qcCheckTaskIncomeMapper.updateQcCheckTask(qcCheckTask);
logger.info("qc_check_task:"+n);
/**更新qc_check_task_detail**/
qcCheckTask.setCxzz(qcCheckTaskIncome.getCxzz());
qcCheckTask.setJgy(qcCheckTaskIncome.getJgy());
qcCheckTask.setPgy(qcCheckTaskIncome.getPgy());
BigDecimal sampleQuality = new BigDecimal("0");
for(QcCheckTaskDetail detail:details){
detail.setUpdateTime(nowTime);
sampleQuality = noOkQquality.add(new BigDecimal(detail.getSampleQuality()==null?"0":detail.getSampleQuality()));
//上传附件
if (StringUtils.isNotEmpty(detail.getFileListStr())) {
String[] ids = detail.getFileListStr().split(",");
@ -829,6 +882,12 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
}
}
qcCheckTask.setSampleQuality(sampleQuality);
/**qc_check_task**/
n = qcCheckTaskIncomeMapper.updateQcCheckTask(qcCheckTask);
logger.info("qc_check_task:"+n);
/**更新qc_check_task_detail**/
n= qcCheckTaskIncomeMapper.updateQcCheckTaskDetails(details);
logger.info("更新qc_check_task_detail:"+n);
@ -921,16 +980,16 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
return 1 ;
}
/*
/*
*
* */
private void setOaFunc(QcCheckUnqualified unqualified,QcCheckTaskIncome qcCheckTaskIncome){
//不合格描述
unqualified.setRemark(qcCheckTaskIncome.getRemark());
if("produce".equals(qcCheckTaskIncome.getTypeCode())){
if("produce".equals(qcCheckTaskIncome.getTypeCode())||"product".equals(qcCheckTaskIncome.getTypeCode())){
unqualified.setTypeCode(qcCheckTaskIncome.getTypeCode());
unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt());
unqualified.setUser(qcCheckTaskIncome.getPgzg());//qcCheckTaskIncome.getUpdateBy();
//申请人-
unqualified.setSqr("MSL#"+qcCheckTaskIncome.getSqr());
//申请部门
@ -946,9 +1005,12 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
if(qcCheckTaskIncome.getSfxyzg().equals("0")){//是
//qc主管
unqualified.setPgzg("MSL#"+qcCheckTaskIncome.getPgzg());
//质量主管
unqualified.setPgzr("MSL#"+qcCheckTaskIncome.getPgzr());
unqualified.setUser(qcCheckTaskIncome.getPgzg());
}else{
unqualified.setUser(qcCheckTaskIncome.getPgzr());
}
//质量主管
unqualified.setPgzr("MSL#"+qcCheckTaskIncome.getPgzr());
//是否供应商问题
unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt());
unqualified.setOaFactoryF(qcCheckTaskIncome.getOaFactoryF());
@ -1052,6 +1114,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
//发企业微信--------------------结束
}
}
//CAR:0 PC:1 其它2 吨3 千克4
protected String getConvertUnit(String unit){
String unitOa= "";

@ -100,13 +100,14 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
if("material".equals(taskIfo.getTypeCode())) {
//ZL0010-来料检验不合格控制流程
oaR = this.createLLOA(taskIfo);
}else if("produce".equals(taskIfo.getTypeCode())){
}else if("produce".equals(taskIfo.getTypeCode())||"product".equals(taskIfo.getTypeCode())){
//ZL0030-品质异常流程
oaR = this.createProduceOA(taskIfo);
}else if("product".equals(taskIfo.getTypeCode())) {
//ZL0020-成品检验控制流程
oaR = this.createProductOA(taskIfo);
}
// else if("product".equals(taskIfo.getTypeCode())) {
// //ZL0020-成品检验控制流程
// oaR = this.createProductOA(taskIfo);
// }
if(oaR!=null ){
if((oaR.get("code").toString()).equals("200")){
/**qc_check_unqualified**/

@ -82,32 +82,7 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
String nowYMD = DateUtils.getDate();
qcInterface.setYmd(nowYMD);
//生产打开List<QcInterface> dtos = qcInterfaceMapper.getCheckProjectsPie(qcInterface);
/**质量看板测试开始**/
List<QcInterface> dtos = new ArrayList<>();
QcInterface q0 = new QcInterface();
q0.setProjectName("热贮稳定性");
q0.setQuality("1");
dtos.add(q0);
QcInterface q1 = new QcInterface();
q1.setProjectName("[香坯包膜]15mm爆口直径");
q1.setQuality("2");
dtos.add(q1);
QcInterface q2 = new QcInterface();
q2.setProjectName("其它不良现象");
q2.setQuality("5");
dtos.add(q2);
QcInterface q3 = new QcInterface();
q3.setProjectName("眼头插孔");
q3.setQuality("1");
dtos.add(q3);
QcInterface q4 = new QcInterface();
q4.setProjectName("厚度(一盘)");
q4.setQuality("2");
dtos.add(q4);
/**质量看板测试结束**/
List<QcInterface> dtos = qcInterfaceMapper.getCheckProjectsPie(qcInterface);
return dtos;
}
@ -163,68 +138,68 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
dto.setCheckStatus("0".equals(dto.getCheckStatus()) ? "待检测" : "检测完成");
dto.setCheckResult("Y".equals(dto.getCheckResult()) ? "合格" : "不合格");
}
/**质量看板测试开始**/
QcInterface q0 = new QcInterface();
q0.setCheckNo("20240305001");
q0.setIncomeBatchNo("20270122LJ20240123BBBA0G");
q0.setOrderNo("000800000083-1");
q0.setMaterialName("10小时无烟型黑蚊香(繁体)纸盒");
q0.setQuality("19000");
q0.setUnit("个");
q0.setSupplierName("中山市粤华包装有限公司");
q0.setIncomeTime("2024-03-05 00:00:00");
q0.setCheckTime("2024-03-05 11:32:00");
q0.setCheckResult("合格");
q0.setCheckManName("马娥章");
q0.setCheckName("来料检验");
dtos.add(q0);
QcInterface q1 = new QcInterface();
q1.setCheckNo("20240306002");
q1.setIncomeBatchNo("20270122LJ20240123BCCA0F");
q1.setOrderNo("0008000001093-1");
q1.setMaterialName("依素猫狗(黄色)气雾盖");
q1.setQuality("5000");
q1.setUnit("个");
q1.setSupplierName("广州盛盈环保科技有限公司");
q1.setIncomeTime("2024-03-05 00:00:00");
q1.setCheckTime("2024-03-05 13:32:00");
q1.setCheckResult("合格");
q1.setCheckManName("马娥章");
q1.setCheckName("来料检验");
dtos.add(q1);
QcInterface q2 = new QcInterface();
q2.setCheckNo("20240307002");
q2.setIncomeBatchNo("20270122LJ20240456BCCA0D");
q2.setOrderNo("0008000001193-1");
q2.setMaterialName("King Brand蚊片(450装)纸箱");
q2.setQuality("5800");
q2.setUnit("个");
q2.setSupplierName("广州市网能产品设计有限公司");
q2.setIncomeTime("2024-08-06 00:00:00");
q2.setCheckTime("2024-08-06 13:42:00");
q2.setCheckResult("合格");
q2.setCheckManName("马娥章");
q2.setCheckName("来料检验");
dtos.add(q2);
QcInterface q3 = new QcInterface();
q3.setCheckNo("20240308001");
q3.setIncomeBatchNo("20270122LJ20240456BCBB0D");
q3.setOrderNo("0008000001203-1");
q3.setMaterialName("榄菊牌清香型蚊液(空白)纸箱");
q3.setQuality("7800");
q3.setUnit("个");
q3.setSupplierName("广州市网能产品设计有限公司");
q3.setCheckTime("2024-03-05 13:50:00");
q3.setIncomeTime("2024-08-06 00:00:00");
q3.setCheckResult("合格");
q3.setCheckManName("马娥章");
q3.setCheckName("来料检验");
dtos.add(q3);
/**质量看板测试结束**/
// /**质量看板测试开始**/
// QcInterface q0 = new QcInterface();
// q0.setCheckNo("20240305001");
// q0.setIncomeBatchNo("20270122LJ20240123BBBA0G");
// q0.setOrderNo("000800000083-1");
// q0.setMaterialName("10小时无烟型黑蚊香(繁体)纸盒");
// q0.setQuality("19000");
// q0.setUnit("个");
// q0.setSupplierName("中山市粤华包装有限公司");
// q0.setIncomeTime("2024-03-05 00:00:00");
// q0.setCheckTime("2024-03-05 11:32:00");
// q0.setCheckResult("合格");
// q0.setCheckManName("马娥章");
// q0.setCheckName("来料检验");
// dtos.add(q0);
//
// QcInterface q1 = new QcInterface();
// q1.setCheckNo("20240306002");
// q1.setIncomeBatchNo("20270122LJ20240123BCCA0F");
// q1.setOrderNo("0008000001093-1");
// q1.setMaterialName("依素猫狗(黄色)气雾盖");
// q1.setQuality("5000");
// q1.setUnit("个");
// q1.setSupplierName("广州盛盈环保科技有限公司");
// q1.setIncomeTime("2024-03-05 00:00:00");
// q1.setCheckTime("2024-03-05 13:32:00");
// q1.setCheckResult("合格");
// q1.setCheckManName("马娥章");
// q1.setCheckName("来料检验");
// dtos.add(q1);
//
// QcInterface q2 = new QcInterface();
// q2.setCheckNo("20240307002");
// q2.setIncomeBatchNo("20270122LJ20240456BCCA0D");
// q2.setOrderNo("0008000001193-1");
// q2.setMaterialName("King Brand蚊片(450装)纸箱");
// q2.setQuality("5800");
// q2.setUnit("个");
// q2.setSupplierName("广州市网能产品设计有限公司");
// q2.setIncomeTime("2024-08-06 00:00:00");
// q2.setCheckTime("2024-08-06 13:42:00");
// q2.setCheckResult("合格");
// q2.setCheckManName("马娥章");
// q2.setCheckName("来料检验");
// dtos.add(q2);
//
// QcInterface q3 = new QcInterface();
// q3.setCheckNo("20240308001");
// q3.setIncomeBatchNo("20270122LJ20240456BCBB0D");
// q3.setOrderNo("0008000001203-1");
// q3.setMaterialName("榄菊牌清香型蚊液(空白)纸箱");
// q3.setQuality("7800");
// q3.setUnit("个");
// q3.setSupplierName("广州市网能产品设计有限公司");
// q3.setCheckTime("2024-03-05 13:50:00");
// q3.setIncomeTime("2024-08-06 00:00:00");
// q3.setCheckResult("合格");
// q3.setCheckManName("马娥章");
// q3.setCheckName("来料检验");
// dtos.add(q3);
//
// /**质量看板测试结束**/
return dtos;
}
@ -236,40 +211,50 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
Map<String, String> dtoMap = new HashMap<>();
qcInterface.setYmdType("dd");
QcInterface hz = qcInterfaceMapper.getProduceHz(qcInterface);
if (hz != null) {
dtoMap.put("todayPro", hz.getQuality());
dtoMap.put("todaySample", hz.getSampleQuality());
dtoMap.put("todayNoOk", hz.getNoOkQuality());
BigDecimal tOkRate = (new BigDecimal(hz.getSampleQuality())
.subtract(new BigDecimal(hz.getNoOkQuality()))
QcInterface hz0 = qcInterfaceMapper.getProduceHz1(qcInterface);
if (hz0 != null) {
dtoMap.put("todayPro", hz0.getQuality().replaceAll("\\..*", ""));
}else{
dtoMap.put("todayPro", "0");
}
QcInterface hz1 = qcInterfaceMapper.getProduceHz(qcInterface);
if (hz1 != null) {
dtoMap.put("todaySample", hz1.getSampleQuality().replaceAll("\\..*", ""));
dtoMap.put("todayNoOk", hz1.getNoOkQuality().replaceAll("\\..*", ""));
BigDecimal tOkRate = (new BigDecimal(hz1.getSampleQuality())
.subtract(new BigDecimal(hz1.getNoOkQuality()))
)
.multiply(new BigDecimal(100))
.divide(new BigDecimal(hz.getQuality()), 2, RoundingMode.HALF_UP);
.divide(new BigDecimal(hz1.getSampleQuality()), 2, RoundingMode.HALF_UP);
dtoMap.put("todayOkRate", tOkRate + "%");
}
qcInterface.setYmdType("mm");
QcInterface hz20 = qcInterfaceMapper.getProduceHz1(qcInterface);
if (hz20 != null) {
dtoMap.put("monthPro", hz20.getQuality().replaceAll("\\..*", ""));
}else{
dtoMap.put("monthPro", "0");
}
QcInterface hz2 = qcInterfaceMapper.getProduceHz(qcInterface);
if (hz2 != null) {
dtoMap.put("monthPro", hz2.getQuality());
dtoMap.put("monthNoOk", hz2.getNoOkQuality());
dtoMap.put("monthNoOk", hz2.getNoOkQuality().replaceAll("\\..*", ""));
BigDecimal tOkRate2 = (new BigDecimal(hz2.getSampleQuality())
.subtract(new BigDecimal(hz2.getNoOkQuality()))
)
.multiply(new BigDecimal(100))
.divide(new BigDecimal(hz2.getQuality()), 2, RoundingMode.HALF_UP);
.divide(new BigDecimal(hz2.getSampleQuality()), 2, RoundingMode.HALF_UP);
dtoMap.put("monthOkRate", tOkRate2 + "%");
}
/**质量看板测试开始**/
dtoMap.put("todayPro", "3800");
dtoMap.put("todaySample", "50");
dtoMap.put("todayNoOk", "2");
dtoMap.put("todayOkRate", "96.00%");
dtoMap.put("monthPro", "83600");
dtoMap.put("monthNoOk", "30");
dtoMap.put("monthOkRate", "99.96%");
/**质量看板测试结束**/
// /**质量看板测试开始**/
// dtoMap.put("todayPro", "3800");
// dtoMap.put("todaySample", "50");
// dtoMap.put("todayNoOk", "2");
// dtoMap.put("todayOkRate", "96.00%");
// dtoMap.put("monthPro", "83600");
// dtoMap.put("monthNoOk", "30");
// dtoMap.put("monthOkRate", "99.96%");
// /**质量看板测试结束**/
return dtoMap;
}
@ -298,7 +283,7 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
List<String> monthData = new ArrayList<>();
for (int mh = 1; mh <= nowMonth; mh++) {
String yyyymm = nowYMDs[1] + "-" + String.format("%02d", mh);
String yyyymm = nowYMDs[0] + "-" + String.format("%02d", mh);
monthNames.add(yyyymm);
if (!CollectionUtils.isEmpty(noOkHzs)&&noOkHzs.get(yyyymm)!=null) {
monthData.add(noOkHzs.get(yyyymm).getNoOkQuality());
@ -309,18 +294,18 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
dtoMap.put("month", monthNames);
dtoMap.put("monthData", monthData);
/**质量看板测试开始**/
List<String> monthNames0 = new ArrayList<>();
monthNames0.add("2024-01");monthNames0.add("2024-02");monthNames0.add("2024-03");monthNames0.add("2024-04");
monthNames0.add("2024-05");monthNames0.add("2024-06");monthNames0.add("2024-07");monthNames0.add("2024-08");
monthNames0.add("2024-09");monthNames0.add("2024-10");monthNames0.add("2024-11");monthNames0.add("2024-12");
List<String> monthData0 = new ArrayList<>();
monthData0.add("5");monthData0.add("4");monthData0.add("7");monthData0.add("10");monthData0.add("5");
monthData0.add("4");monthData0.add("9");monthData0.add("12");monthData0.add("3");monthData0.add("7");
monthData0.add("5");monthData0.add("2");
dtoMap.put("month", monthNames0);
dtoMap.put("monthData", monthData0);
/**质量看板测试结束**/
// /**质量看板测试开始**/
// List<String> monthNames0 = new ArrayList<>();
// monthNames0.add("2024-01");monthNames0.add("2024-02");monthNames0.add("2024-03");monthNames0.add("2024-04");
// monthNames0.add("2024-05");monthNames0.add("2024-06");monthNames0.add("2024-07");monthNames0.add("2024-08");
// monthNames0.add("2024-09");monthNames0.add("2024-10");monthNames0.add("2024-11");monthNames0.add("2024-12");
// List<String> monthData0 = new ArrayList<>();
// monthData0.add("5");monthData0.add("4");monthData0.add("7");monthData0.add("10");monthData0.add("5");
// monthData0.add("4");monthData0.add("9");monthData0.add("12");monthData0.add("3");monthData0.add("7");
// monthData0.add("5");monthData0.add("2");
// dtoMap.put("month", monthNames0);
// dtoMap.put("monthData", monthData0);
// /**质量看板测试结束**/
return dtoMap;
}
@ -392,58 +377,58 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
}
lastYM.setDayStr(daystr0);
nowYM.setDayStr(daystr1);
//生产打开
// qcInterface.setYmd("'" + nowYear + "','" + lastYear + "'");
//
// Map<String, QcInterface> noOkNum = qcInterfaceMapper.getMothNoOkNum(qcInterface);
// if (noOkNum == null) {
// return null;
// }
//
// List<String> dataBar0 = new ArrayList<>();//不合规数量
// List<String> dataLine0 = new ArrayList<>();//不合格率
// for (String day0 : daystr0) {
// QcInterface last = noOkNum.get(day0);
// if (last != null) {
// dataBar0.add(last.getNoOkQuality());
// BigDecimal norate0 = new BigDecimal(last.getNoOkQuality()).multiply(new BigDecimal(100))
// .divide(new BigDecimal(last.getQuality()), 2, RoundingMode.HALF_UP);
// dataLine0.add(norate0.toString());
// } else {
// dataBar0.add("0");
// dataLine0.add("0.00");
// }
// }
//
// List<String> dataBar1 = new ArrayList<>();//不合规数量
// List<String> dataLine1 = new ArrayList<>();//不合格率
// for (String day1 : daystr1) {
// QcInterface now = noOkNum.get(day1);
// if (now != null) {
// dataBar1.add(now.getNoOkQuality());
// BigDecimal norate0 = new BigDecimal(now.getNoOkQuality()).multiply(new BigDecimal(100))
// .divide(new BigDecimal(now.getQuality()), 2, RoundingMode.HALF_UP);
// dataLine1.add(norate0.toString());
// } else {
// dataBar1.add("0");
// dataLine1.add("0.00");
// }
// }
/**质量看板测试开始**/
//生产打开
qcInterface.setYmd("'" + nowYear + "','" + lastYear + "'");
Map<String, QcInterface> noOkNum = qcInterfaceMapper.getMothNoOkNum(qcInterface);
if (noOkNum == null) {
return null;
}
List<String> dataBar0 = new ArrayList<>();//不合规数量
List<String> dataLine0 = new ArrayList<>();//不合格率
for (String day0 : daystr0) {
QcInterface last = noOkNum.get(day0);
if (last != null) {
dataBar0.add(last.getNoOkQuality());
BigDecimal norate0 = new BigDecimal(last.getNoOkQuality()).multiply(new BigDecimal(100))
.divide(new BigDecimal(last.getQuality()), 2, RoundingMode.HALF_UP);
dataLine0.add(norate0.toString());
} else {
dataBar0.add("0");
dataLine0.add("0.00");
}
}
List<String> dataBar1 = new ArrayList<>();//不合规数量
List<String> dataLine1 = new ArrayList<>();//不合格率
dataBar0.add("4");dataBar0.add("9");dataBar0.add("7");dataBar0.add("13");dataBar0.add("11");dataBar0.add("7");
dataBar0.add("8");dataBar0.add("4");dataBar0.add("5");dataBar0.add("2");dataBar0.add("10");dataBar0.add("6");
dataBar1.add("3");dataBar1.add("14");dataBar1.add("17");dataBar1.add("3");dataBar1.add("9");dataBar1.add("3");
dataBar1.add("8");dataBar1.add("5");dataBar1.add("4");dataBar1.add("2");dataBar1.add("9");dataBar1.add("5");
dataLine0.add("1");dataLine0.add("2");dataLine0.add("0.5");dataLine0.add("0.9");dataLine0.add("1");dataLine0.add("1.9");
dataLine0.add("1.1");dataLine0.add("1");dataLine0.add("0.7");dataLine0.add("0.9");dataLine0.add("1.5");dataLine0.add("1.3");
dataLine1.add("0.5");dataLine1.add("1.5");dataLine1.add("0.9");dataLine1.add("1");dataLine1.add("0.7");dataLine1.add("1.9");
dataLine1.add("1.4");dataLine1.add("0.5");dataLine1.add("0.9");dataLine1.add("1");dataLine1.add("1.3");dataLine1.add("1.2");
/**质量看板测试结束**/
for (String day1 : daystr1) {
QcInterface now = noOkNum.get(day1);
if (now != null) {
dataBar1.add(now.getNoOkQuality());
BigDecimal norate0 = new BigDecimal(now.getNoOkQuality()).multiply(new BigDecimal(100))
.divide(new BigDecimal(now.getQuality()), 2, RoundingMode.HALF_UP);
dataLine1.add(norate0.toString());
} else {
dataBar1.add("0");
dataLine1.add("0.00");
}
}
// /**质量看板测试开始**/
// List<String> dataBar0 = new ArrayList<>();//不合规数量
// List<String> dataLine0 = new ArrayList<>();//不合格率
// List<String> dataBar1 = new ArrayList<>();//不合规数量
// List<String> dataLine1 = new ArrayList<>();//不合格率
// dataBar0.add("4");dataBar0.add("9");dataBar0.add("7");dataBar0.add("13");dataBar0.add("11");dataBar0.add("7");
// dataBar0.add("8");dataBar0.add("4");dataBar0.add("5");dataBar0.add("2");dataBar0.add("10");dataBar0.add("6");
// dataBar1.add("3");dataBar1.add("14");dataBar1.add("17");dataBar1.add("3");dataBar1.add("9");dataBar1.add("3");
// dataBar1.add("8");dataBar1.add("5");dataBar1.add("4");dataBar1.add("2");dataBar1.add("9");dataBar1.add("5");
//
// dataLine0.add("1");dataLine0.add("2");dataLine0.add("0.5");dataLine0.add("0.9");dataLine0.add("1");dataLine0.add("1.9");
// dataLine0.add("1.1");dataLine0.add("1");dataLine0.add("0.7");dataLine0.add("0.9");dataLine0.add("1.5");dataLine0.add("1.3");
// dataLine1.add("0.5");dataLine1.add("1.5");dataLine1.add("0.9");dataLine1.add("1");dataLine1.add("0.7");dataLine1.add("1.9");
// dataLine1.add("1.4");dataLine1.add("0.5");dataLine1.add("0.9");dataLine1.add("1");dataLine1.add("1.3");dataLine1.add("1.2");
// /**质量看板测试结束**/
lastYM.setDataBarArrays(dataBar0);
lastYM.setDataLineArrays(dataLine0);

@ -173,6 +173,42 @@ public class QcProCheckServiceImpl implements QcProCheckService {
return dto;
}
@Override
public QcCheckTaskIncome getCheckTaskDetailListCg(QcCheckTaskDetail qcCheckTaskDetail) {
DynamicDataSourceContextHolder.push(qcCheckTaskDetail.getFactoryCode());
QcCheckTaskIncome dto = qcCheckTaskIncomeMapper.getTaskInfoCg(qcCheckTaskDetail.getBelongTo());
if (dto == null) {
return null;
}
List<QcCheckTaskDetail> qcCheckTaskDetails = qcCheckTaskIncomeMapper.getCkeckProjectList(qcCheckTaskDetail);
/**qc_check_task_defect**/
Map<String,QcCheckTaskDefect> defectMap = qcCheckTaskDefectMapper.getDefectMap(qcCheckTaskDetail);
for (QcCheckTaskDetail qcd : qcCheckTaskDetails) {
qcd.setSampleQuality(qcd.getSampleQuality().replaceAll("\\..*", ""));//去掉小数
List<BaseFile> files = qmsFileMapper.getBaseFileBatch(qcd.getRecordId());
if (CollectionUtils.isNotEmpty(files)) {
qcd.setFiles(files);
}
QcCheckTaskDefect defectInfo = defectMap.get(qcd.getRecordId());
if(defectInfo != null){
qcd.setDefectCodes(defectInfo.getDefectCodes());
qcd.setDefectNames(defectInfo.getDefectNames());
qcd.setDefectQualitys(defectInfo.getDefectQualitys());
}
}
dto.setQcCheckTaskDetails(qcCheckTaskDetails);
List<QcCheckTaskDefect> defects = qcCheckTaskIncomeMapper.getCkeckDefectList(qcCheckTaskDetail);
if (CollectionUtils.isEmpty(defects)) {
defects = qcCheckTaskIncomeMapper.getDefectType(qcCheckTaskDetail);
}
dto.setDefects(defects);
return dto;
}
@Override
@DS("master")

@ -112,10 +112,10 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
tabledto.setNoOkNumRate("0.00%");
}
}
return tabledtos.stream()
.filter(obj -> obj.getBatchs() != 0)
.collect(Collectors.toList());
return tabledtos;
// return tabledtos.stream()
// .filter(obj -> obj.getBatchs() != 0)
// .collect(Collectors.toList());
}
/**

@ -315,11 +315,186 @@
<if test="remark != null">remark = #{remark},</if>
<if test="reason != null">reason = #{reason},</if>
<if test="bz != null">bz = #{bz},</if>
<if test="cxzz != null">cxzz = #{cxzz},</if>
<if test="jgy != null">jgy = #{jgy},</if>
<if test="pgy != null">pgy = #{pgy},</if>
check_result = #{checkResult},
update_by = #{updateBy},
update_time = #{updateTime}
where record_id = #{recordId}
</update>
<insert id="insertQcCheckTaskIncomeCg" parameterType="QcCheckTaskIncome">
insert into qc_check_task_cg
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="recordId != null">record_id,</if>
<if test="checkNo != null">check_no,</if>
<if test="incomeBatchNo != null">income_batch_no,</if>
<if test="orderNo != null">order_no,</if>
<if test="materialCode != null">material_code,</if>
<if test="materialName != null">material_name,</if>
<if test="quality != null">quality,</if>
<if test="noOkQuality != null">noOk_quality,</if>
<if test="unit != null">unit,</if>
<if test="supplierCode != null">supplier_code,</if>
<if test="supplierName != null">supplier_name,</if>
<if test="incomeTime != null">income_time,</if>
<if test="checkLoc != null">check_loc,</if>
<if test="checkStatus != null">check_status,</if>
<if test="checkManCode != null">check_man_code,</if>
<if test="checkManName != null">check_man_name,</if>
<if test="checkTime != null">check_time,</if>
<if test="checkResult != null">check_result,</if>
<if test="status != null">status,</if>
<if test="attr1 != null">attr1,</if>
<if test="attr2 != null">attr2,</if>
<if test="attr3 != null">attr3,</if>
<if test="attr4 != null">attr4,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="factoryCode != null and factoryCode != ''">factory_code,</if>
<if test="delFlag != null">del_flag,</if>
<if test="checkType != null">check_type,</if>
<if test="typeCode != null">type_code,</if>
<if test="sampleQuality != null">sample_quality,</if>
<if test="orderType != null">order_type,</if>
<if test="orderTypeDesc != null">order_type_desc,</if>
<if test="remark != null">remark,</if>
<if test="reason != null">reason,</if>
<if test="bz != null">bz,</if>
<if test="startOA != null">start_oA,</if>
<if test="oaFactory != null">oa_factory,</if>
<if test="materialType != null">material_type,</if>
<if test="materialFrom != null">material_from,</if>
<if test="czbjr != null">czbjr,</if>
<if test="zcf != null">zcf,</if>
<if test="zcoemcm != null">zcoemcm,</if>
<if test="qczg != null">qczg,</if>
<if test="sqr != null">sqr,</if>
<if test="sqbm != null">sqbm,</if>
<if test="oaFactoryF != null">oa_factory_f,</if>
<if test="sfxyzg != null">sfxyzg,</if>
<if test="pgzg != null">pgzg,</if>
<if test="pgzr != null">pgzr,</if>
<if test="sfgyswt != null">sfgyswt,</if>
<if test="sccj != null">sccj,</if>
<if test="aNoOkquality != null">aNoOkquality,</if>
<if test="bNoOkquality != null">bNoOkquality,</if>
<if test="cNoOkquality != null">cNoOkquality,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="recordId != null">#{recordId},</if>
<if test="checkNo != null">#{checkNo},</if>
<if test="incomeBatchNo != null">#{incomeBatchNo},</if>
<if test="orderNo != null">#{orderNo},</if>
<if test="materialCode != null">#{materialCode},</if>
<if test="materialName != null">#{materialName},</if>
<if test="quality != null">#{quality},</if>
<if test="noOkQuality != null">#{noOkQuality},</if>
<if test="unit != null">#{unit},</if>
<if test="supplierCode != null">#{supplierCode},</if>
<if test="supplierName != null">#{supplierName},</if>
<if test="incomeTime != null">#{incomeTime},</if>
<if test="checkLoc != null">#{checkLoc},</if>
<if test="checkStatus != null">#{checkStatus},</if>
<if test="checkManCode != null">#{checkManCode},</if>
<if test="checkManName != null">#{checkManName},</if>
<if test="checkTime != null">#{checkTime},</if>
<if test="checkResult != null">#{checkResult},</if>
<if test="status != null">#{status},</if>
<if test="attr1 != null">#{attr1},</if>
<if test="attr2 != null">#{attr2},</if>
<if test="attr3 != null">#{attr3},</if>
<if test="attr4 != null">#{attr4},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="factoryCode != null and factoryCode != ''">#{factoryCode},</if>
<if test="delFlag != null">#{delFlag},</if>
<if test="checkType != null">#{checkType},</if>
<if test="typeCode != null">#{typeCode},</if>
<if test="sampleQuality != null">#{sampleQuality},</if>
<if test="orderType != null">#{orderType},</if>
<if test="orderTypeDesc != null">#{orderTypeDesc},</if>
<if test="remark != null">#{remark},</if>
<if test="reason != null">#{reason},</if>
<if test="bz != null">#{bz},</if>
<if test="startOA != null">#{startOA},</if>
<if test="oaFactory != null">#{oaFactory},</if>
<if test="materialType != null">#{materialType},</if>
<if test="materialFrom != null">#{materialFrom},</if>
<if test="czbjr != null">#{czbjr},</if>
<if test="zcf != null">#{zcf},</if>
<if test="zcoemcm != null">#{zcoemcm},</if>
<if test="qczg != null">#{qczg},</if>
<if test="sqr != null">#{sqr},</if>
<if test="sqbm != null">#{sqbm},</if>
<if test="oaFactoryF != null">#{oaFactoryF},</if>
<if test="sfxyzg != null">#{sfxyzg},</if>
<if test="pgzg != null">#{pgzg},</if>
<if test="pgzr != null">#{pgzr},</if>
<if test="sfgyswt != null">#{sfgyswt},</if>
<if test="sccj != null">#{sccj},</if>
<if test="aNoOkquality != null">#{aNoOkquality},</if>
<if test="bNoOkquality != null">#{bNoOkquality},</if>
<if test="cNoOkquality != null">#{cNoOkquality},</if>
</trim>
</insert>
<update id="updateQcCheckTaskCg">
update qc_check_task_cg
set
check_status = #{checkStatus},
check_man_code = #{checkManCode},
check_man_name =#{checkManName},
<if test="checkTime != null">check_time = #{checkTime},</if>
<if test="sampleQuality != null">sample_quality = #{sampleQuality},</if>
<if test="noOkQuality != null">noOk_quality = #{noOkQuality},</if>
<if test="aNoOkquality != null">aNoOkquality = #{aNoOkquality},</if>
<if test="bNoOkquality != null">bNoOkquality = #{bNoOkquality},</if>
<if test="cNoOkquality != null">cNoOkquality = #{cNoOkquality},</if>
<if test="incomeBatchNo != null">income_batch_no = #{incomeBatchNo},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="reason != null">reason = #{reason},</if>
<if test="bz != null">bz = #{bz},</if>
<if test="startOA != null">start_oA = #{startOA},</if>
<if test="oaFactory != null">oa_factory = #{oaFactory},</if>
<if test="materialType != null">material_type = #{materialType},</if>
<if test="materialFrom != null">material_from = #{materialFrom},</if>
<if test="czbjr != null">czbjr = #{czbjr},</if>
<if test="zcf != null">zcf = #{zcf},</if>
<if test="zcoemcm != null">zcoemcm = #{zcoemcm},</if>
<if test="qczg != null">qczg = #{qczg},</if>
<if test="sqr != null">sqr = #{sqr},</if>
<if test="quality != null">quality = #{quality},</if>
<if test="unit != null">unit = #{unit},</if>
<if test="sqbm != null">sqbm = #{sqbm},</if>
<if test="checkLoc != null">check_loc = #{checkLoc},</if>
<if test="oaFactoryF != null">oa_factory_f = #{oaFactoryF},</if>
<if test="sfxyzg != null">sfxyzg = #{sfxyzg},</if>
<if test="pgzg != null">pgzg = #{pgzg},</if>
<if test="pgzr != null">pgzr = #{pgzr},</if>
<if test="sfgyswt != null">sfgyswt = #{sfgyswt},</if>
<if test="sccj != null">sccj = #{sccj},</if>
check_result = #{checkResult},
update_by = #{updateBy},
update_time = #{updateTime}
where record_id = #{recordId}
</update>
<select id="selectQcCheckTaskCgByRecordId" resultType="com.op.quality.domain.QcCheckTaskIncome">
select record_id, check_no, income_batch_no, order_no, material_code, material_name, quality, unit,
supplier_code, supplier_name, income_time, check_loc, check_status, check_man_code,
check_man_name, check_time, check_result, status, attr1, attr2, attr3, attr4, create_by,
create_time, update_by, update_time, factory_code, del_flag , check_type,sample_quality, noOk_quality,
order_type,order_type_desc
from qc_check_task_cg
where record_id = #{recordId}
</select>
<update id="updateQcCheckTaskDetails">
<foreach collection="list" item="item" separator=";">
update qc_check_task_detail
@ -416,11 +591,59 @@
qct.check_result checkResult,
qct.income_time incomeTime,
qct.check_loc checkLoc,
qct.remark
qct.remark,
qct.cxzz,
qct.jgy,
qct.pgy
from qc_check_task qct
left join pro_order_workorder pow on pow.workorder_code = qct.order_no and pow.del_flag = '0'
where qct.record_id = #{recordId}
</select>
<select id="getTaskInfoCg" resultType="com.op.quality.domain.QcCheckTaskIncome">
select
qct.material_code materialCode,
qct.material_name materialName,
qct.supplier_code supplierCode,
qct.supplier_name supplierName,
qct.income_batch_no incomeBatchNo,
qct.quality,
qct.material_type materialType,
qct.material_from materialFrom,
qct.factory_code factoryCode,
case when pow.workorder_code_sap is not null then pow.workorder_code_sap
else qct.order_no end orderNo,
qct.create_time createTime,
qct.check_no checkNo,
qct.type_code typeCode,
qct.unit,
qct.check_time checkTime,
qct.check_result checkResult,
qct.income_time incomeTime,
qct.check_loc checkLoc,
qct.remark,
qct.czbjr,
qct.zcf,
qct.zcoemcm,
qct.qczg,
qct.reason,
qct.bz attr3,
qct.check_type checkType,
qct.sample_quality sampleQuality,
qct.oa_factory oaFactory,
qct.oa_factory_f oaFactoryF,
qct.start_oA startOA,
qct.sqbm,
qct.sqr,
qct.sfxyzg,
qct.pgzg,
qct.pgzr,
qct.sfgyswt,
qct.sccj
from qc_check_task_cg qct
left join pro_order_workorder pow on pow.workorder_code = qct.order_no and pow.del_flag = '0'
where qct.record_id = #{recordId}
</select>
<select id="getCkeckTaskXJList" resultType="com.op.quality.domain.QcCheckTaskIncome">
select
record_id recordId,

@ -40,6 +40,7 @@
</if>
</select>
<select id="getCheckProjectsPie" resultType="com.op.quality.domain.QcInterface">
<!--
select count(0) quality,
qctd.project_no,
qctd.rule_name projectName
@ -55,7 +56,21 @@
<if test='ymdType=="dd"'>
and CONVERT(varchar(10),qcu.update_time, 120) = SUBSTRING(#{ymd},0,11)
</if>
group by qctd.project_no,qctd.rule_name
group by qctd.project_no,qctd.rule_name-->
select qct.remark projectName,
count(0) quality
from qc_check_task qct
where qct.type_code = 'produce' and qct.check_result = 'N' and qct.remark is not null
<if test='ymdType=="yyyy"'>
and CONVERT(varchar(4),qct.check_time, 120) = SUBSTRING(#{ymd},0,5)
</if>
<if test='ymdType=="mm"'>
and CONVERT(varchar(7),qct.check_time, 120) = SUBSTRING(#{ymd},0,8)
</if>
<if test='ymdType=="dd"'>
and CONVERT(varchar(10),qct.check_time, 120) = SUBSTRING(#{ymd},0,11)
</if>
group by qct.remark
</select>
<select id="getSupplierBadTOP5" resultType="com.op.quality.domain.QcInterface">
select top 5 * from(
@ -108,11 +123,12 @@
qct.quality,
qct.unit,
qct.supplier_name supplierName,
qct.income_time incomeTime,
CONVERT(varchar(10),qct.income_time, 120) incomeTime,
qct.check_status checkStatus,
qct.check_result checkResult,
qct.check_man_name checkManName,
qc.check_name checkName
qc.check_name checkName,
qct.check_time checkTime
from qc_check_task qct
left join qc_check_type qc on qct.check_type = qc.order_code
where qct.del_flag = '0' and qct.status = '1'
@ -126,7 +142,7 @@
<if test='ymdType=="dd"'>
and CONVERT(varchar(10),qct.income_time, 120) = SUBSTRING(#{ymd},0,11)
</if>
order by qct.income_time desc,qct.check_status asc
order by qct.check_no
</select>
<select id="getSupplierNoOkList" resultType="com.op.quality.domain.QcInterface">
select
@ -162,13 +178,13 @@
qct.check_man_name checkManName,
qctd.update_time checkTime
from qc_check_task_detail qctd
left join qc_check_task qct on qctd.belong_to = qct.record_id
left join qc_check_task qct on qctd.belong_to = qct.record_id
where qct.type_code = #{typeCode} and qctd.status = 'N'
and CONVERT(varchar(10),qct.income_time, 120) = SUBSTRING(#{ymd},0,11)
order by qctd.update_time desc
</select>
<select id="getProduceHz" resultType="com.op.quality.domain.QcInterface">
select sum(qct.quality) quality,
select
sum(sample_quality) sampleQuality,
sum(noOk_quality) noOkQuality
from qc_check_task qct
@ -260,4 +276,16 @@
and #{productDateEnd} >= CONVERT(varchar(10),income_time, 120)
group by supplier_name,CONVERT(varchar(10),income_time, 120)
</select>
<select id="getProduceHz1" resultType="com.op.quality.domain.QcInterface">
select sum(mrw.quantity_feedback*be.umrez) quality
from mes_report_work mrw
left join base_product be on be.product_code = mrw.product_code
where mrw.del_flag = '0' and mrw.parent_order = '0' and be.del_flag = '0'
<if test='ymdType=="mm"'>
and CONVERT(varchar(7),mrw.create_time, 120) = CONVERT(varchar(7),GETDATE(), 120)
</if>
<if test='ymdType=="dd"'>
and CONVERT(varchar(10),mrw.create_time, 120) = CONVERT(varchar(10),GETDATE(), 120)
</if>
</select>
</mapper>

@ -7,6 +7,7 @@
<select id="selectQcStaticTableList" parameterType="com.op.quality.domain.QcStaticTable"
resultType="com.op.quality.domain.QcStaticTable">
<!--
SELECT
bs.supplier_id supplierId,
bs.supplier_code supplierCode,
@ -18,7 +19,13 @@
<foreach collection="supplierCodes" item="supplierCode" index="index" separator="," open="(" close=")">
#{supplierCode}
</foreach>
</if>
</if>-->
select DISTINCT qct.supplier_code supplierCode,
qct.supplier_name supplierName
from qc_check_task qct
where qct.type_code = 'material' and qct.del_flag = '0'
and CONVERT(varchar(7),qct.income_time, 120) = #{yearMonth}
</select>
<select id="selectPcMap" resultType="com.op.quality.domain.QcStaticTable">
SELECT

@ -44,6 +44,12 @@ public class BaseDictDataController extends BaseController {
List<SysDictData> list = dictDataService.selectDictDataList(dictData);
return getDataTable(list);
}
@GetMapping("/getDictData")
@DS("#header.poolName")
public AjaxResult getDict(SysDictData dictData) {
List<SysDictData> list = dictDataService.getDictDataList(dictData);
return success(list);
}
@Log(title = "字典数据", businessType = BusinessType.EXPORT)
@RequiresPermissions("factory:dict:export")

@ -320,6 +320,8 @@ public class OdsProcureOrderController extends BaseController {
odsProcureOrderService.OutboundPostingSAPfc(orderList);
return success();
}
@PostMapping("/listCKT")
public AjaxResult listCKT(BaseWarehouse baseWarehouse) {

@ -300,7 +300,14 @@ public class WmsToWCSmissionController {
public AjaxResult WmsProductPutByWorkOrderquery(@RequestBody WmsProductPut wmsProductPut) {
return AjaxResult.success(wmsProductPutService.WmsProductPutByWorkOrderquery(wmsProductPut));
}
/**
*
* ---
*/
@PostMapping("/WmsProductPutByWorkOrderqueryBS")
public AjaxResult WmsProductPutByWorkOrderqueryBS(@RequestBody WmsProductPut wmsProductPut) {
return AjaxResult.success(wmsProductPutService.WmsProductPutByWorkOrderqueryBS(wmsProductPut));
}
/**
*
*

@ -217,6 +217,43 @@ public class WmsProductPut extends BaseEntity {
List<WmsProductPut> wmsProductPut;
private String sn;
private String pallet;//标识卡
public String getPallet() {
return pallet;
}
private String attribute1 ;
private String attribute2;
private String attribute3;
public String getAttribute1() {
return attribute1;
}
public void setAttribute1(String attribute1) {
this.attribute1 = attribute1;
}
public String getAttribute2() {
return attribute2;
}
public void setAttribute2(String attribute2) {
this.attribute2 = attribute2;
}
public String getAttribute3() {
return attribute3;
}
public void setAttribute3(String attribute3) {
this.attribute3 = attribute3;
}
public void setPallet(String pallet) {
this.pallet = pallet;
}
public String getSn() {
return sn;
}

@ -92,4 +92,6 @@ public interface BaseDictDataMapper {
* @return
*/
public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType);
List<SysDictData> getDictDataList(SysDictData dictData);
}

@ -138,4 +138,7 @@ public interface BaseEquipmentMapper {
//查询设备类型(维护在字典中的)
List<BaseEquipment> getEquipmentTypeDeptList(BaseEquipment baseEquipment);
//根据设备名查询设备信息
BaseEquipment selectBaseEquipmentByEquipmentCode(String code);
}

@ -77,6 +77,7 @@ public interface WmsProductPutMapper {
void updateWmsProductPutByIds(@Param("wmsProductPut") WmsProductPut wmsProductPut4, @Param("list") List<WmsProductPut> wmsProductPut2);
WmsProductPut WmsProductPutByWorkOrderqueryBS(WmsProductPut wmsProductPut);
// String selectWmsProductPutNum(wmsReportWork wmsReportWork);

@ -58,4 +58,6 @@ public interface IBaseDictDataService {
* @return
*/
public int updateDictData(SysDictData dictData);
List<SysDictData> getDictDataList(SysDictData dictData);
}

@ -138,4 +138,6 @@ public interface IWmsProductPutService {
Integer finishedProductProductionRecords(ProOrderWorkorder proOrderWorkorder);
List<WmsProductProductionRecords> selectProductProductionRecords(WmsProductProductionRecords wmsProductProductionRecords);
WmsProductPut WmsProductPutByWorkOrderqueryBS(WmsProductPut wmsProductPut);
}

@ -30,6 +30,11 @@ public class BaseDictDataServiceImpl implements IBaseDictDataService {
return dictDataMapper.selectDictDataList(dictData);
}
@Override
public List<SysDictData> getDictDataList(SysDictData dictData) {
return dictDataMapper.getDictDataList(dictData);
}
/**
*
*

@ -235,6 +235,10 @@ public class BaseEquipmentServiceImpl implements IBaseEquipmentService {
List<String> auxiliaryEquipmentRightList = baseEquipment.getAuxiliaryEquipmentRightData();
for (String code : auxiliaryEquipmentRightList) {
EquBindAuxiliaryEquipment equBindAuxiliaryEquipment = new EquBindAuxiliaryEquipment();
//查询绑定的名字 设备类型
BaseEquipment dto = baseEquipmentMapper.selectBaseEquipmentByEquipmentCode(code);
equBindAuxiliaryEquipment.setAuxiliaryEquipmentName(dto.getEquipmentName());
equBindAuxiliaryEquipment.setAuxiliaryEquipmentType(dto.getEquipmentTypeCode());
equBindAuxiliaryEquipment.setAuxiliaryEquipmentCode(code);
equBindAuxiliaryEquipment.setEquipmentCode(baseEquipment.getEquipmentCode());
equBindAuxiliaryEquipment.setCreateBy(SecurityUtils.getUsername());
@ -348,6 +352,10 @@ public class BaseEquipmentServiceImpl implements IBaseEquipmentService {
for (String code : auxiliaryEquipmentRightList) {
EquBindAuxiliaryEquipment equBindAuxiliaryEquipment = new EquBindAuxiliaryEquipment();
equBindAuxiliaryEquipment.setAuxiliaryEquipmentCode(code);
//查询名字 设备类型
BaseEquipment dto = baseEquipmentMapper.selectBaseEquipmentByEquipmentCode(code);
equBindAuxiliaryEquipment.setAuxiliaryEquipmentName(dto.getEquipmentName());
equBindAuxiliaryEquipment.setAuxiliaryEquipmentType(dto.getEquipmentTypeCode());
equBindAuxiliaryEquipment.setEquipmentCode(baseEquipment.getEquipmentCode());
equBindAuxiliaryEquipment.setEquipmentName(baseEquipment.getEquipmentName());
equBindAuxiliaryEquipment.setCreateBy(SecurityUtils.getUsername());

@ -854,7 +854,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
if (ruslt.getCode()==200){//成功
odsProcureOrderMapper.updateOdsProcureOrderAddOperationNumber(odsProcureOrder);
}else {
result="操作失败";
result="操作失败:"+ruslt.getMsg();
}
return result;
}

@ -1028,6 +1028,22 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
return records;
}
@Override
public WmsProductPut WmsProductPutByWorkOrderqueryBS(WmsProductPut wmsProductPut) {
// 使用 split 方法根据 '-' 分割字符串,结果是一个字符串数组
DynamicDataSourceContextHolder.push("ds_" + wmsProductPut.getFactoryCode());
String[] attributes = wmsProductPut.getPallet().split("-");
// 通过索引访问分割后的数组,获取所需的三个属性
String attribute1 = attributes[0]; // 获取第一个属性
String attribute2 = attributes[1]; // 获取第二个属性
String attribute3 = attributes[2]; // 获取第三个属性
wmsProductPut.setAttribute1(attribute1);
wmsProductPut.setAttribute2(attribute2);
wmsProductPut.setAttribute3(attribute3);
WmsProductPut wmsProductPut1 = wmsProductPutMapper.WmsProductPutByWorkOrderqueryBS(wmsProductPut);
return wmsProductPut1;
}
@Override
public List<WmsRuturnPutEmbryo> FinishedProductSalesReturn(WmsRuturnPutEmbryo wmsRuturnPutEmbryo) {
DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode());

@ -41,6 +41,37 @@
order by dict_sort asc
</select>
<select id="getDictDataList" parameterType="SysDictType" resultMap="SysDictTypeResult">
select
CONCAT(dict_label,'[',dict_value,']') AS dict_label,
dict_code,
dict_sort,
dict_value,
dict_type,
status,
remark
from base_dict_data
<where>
<if test="dictType != null and dictType != ''">
AND dict_type = #{dictType}
</if>
<if test="dictLabel != null and dictLabel != ''">
AND dict_label like concat('%', #{dictLabel}, '%')
</if>
<if test="dictValue != null and dictValue != ''">
AND dict_value = #{dictValue}
</if>
<if test="status != null and status != ''">
AND status = #{status}
</if>
<if test="remark != null and remark != ''">
AND remark like concat('%', #{remark}, '%')
</if>
</where>
order by dict_sort asc
</select>
<select id="selectDictDataByType" parameterType="SysDictType" resultMap="SysDictTypeResult">
<include refid="selectDictDataVo"/>
where status = '0' and dict_type = #{dictType} order by dict_sort asc

@ -222,6 +222,12 @@
and del_flag ='0'
</select>
<select id="selectBaseEquipmentByEquipmentCode" parameterType="String" resultMap="BaseEquipmentResult">
<include refid="selectBaseEquipmentVo"/>
where equipment_code = #{equipmentCode}
and del_flag ='0'
</select>
<insert id="insertBaseEquipment" parameterType="BaseEquipment" useGeneratedKeys="true" keyProperty="equipmentId">
insert into base_equipment
<trim prefix="(" suffix=")" suffixOverrides=",">
@ -624,6 +630,8 @@
from equ_bind_auxiliary_equipment ebac
left join base_equipment be on ebac.auxiliary_equipment_code = be.equipment_code
where ebac.equipment_code = #{equipmentCode}
and ebac.del_flag = '0'
and be.del_flag = '0'
order by ebac.auxiliary_equipment_code asc
</select>

@ -384,5 +384,35 @@
#{item.id}
</foreach>
</update>
<select id="WmsProductPutByWorkOrderqueryBS" resultMap="WmsProductPutResult">
SELECT
mes_report_work.report_code work_order,
pro_order_workorder.workorder_code_sap product_order,
mes_report_work.product_code,
mes_report_work.product_name,
mes_report_work.unit unit_of_measure,
mes_report_work.batch batch_number,
mes_report_work.quantity plan_quantity,
( mes_report_work.quantity- put.put_quantity ) attr3
FROM
pro_order_workorder
LEFT JOIN mes_report_work ON pro_order_workorder.workorder_code = mes_report_work.workorder_code
LEFT JOIN (
SELECT SUM
( wms_product_put.put_quantity ) AS put_quantity,
wms_product_put.work_order AS work_order,
wms_product_put.product_code AS product_code
FROM
wms_product_put
GROUP BY
wms_product_put.work_order,
wms_product_put.product_code
) put ON put.work_order= mes_report_work.report_code
AND put.product_code= pro_order_workorder.workorder_code_sap
WHERE
pro_order_workorder.workorder_code_sap=#{attribute1}
AND mes_report_work.batch=#{attribute2}
AND mes_report_work.parent_order = '0'
</select>
</mapper>

Loading…
Cancel
Save