diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java index 21018d99d..560cd7565 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java @@ -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); + } } diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairWorkOrderController.java b/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairWorkOrderController.java index 1a4edaf2b..2bb5f525a 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairWorkOrderController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairWorkOrderController.java @@ -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); } } diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/EquUpkeepOrderController.java b/op-modules/op-device/src/main/java/com/op/device/controller/EquUpkeepOrderController.java index c4a93d93c..927c3b2dc 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/EquUpkeepOrderController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/EquUpkeepOrderController.java @@ -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); diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java index 65c58682a..5e584ed7e 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java @@ -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) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java index 0bddf9777..8f4f4ab82 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java @@ -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; diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java index 14b673d0e..9c1816523 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java @@ -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 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 getApplyTimeArray() { return applyTimeArray; } - public void setApplyTimeArray(List 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 getSpareApplyLists() { return this.spareApplyLists; } - - /** - * 领用类型 - */ public void setSpareApplyLists(List 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; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/dto/UpKeepOrderDTO.java b/op-modules/op-device/src/main/java/com/op/device/domain/dto/UpKeepOrderDTO.java index 937a65375..4047f93ac 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/dto/UpKeepOrderDTO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/dto/UpKeepOrderDTO.java @@ -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 orderCodes) { this.orderCodes = orderCodes; } + + //新增 审核意见 + public String getAuditOpinion() { + return auditOpinion; + } + public void setAuditOpinion(String auditOpinion) { + this.auditOpinion = auditOpinion; + } + } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java index a912acfa7..b62b76e3e 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java @@ -118,4 +118,7 @@ public interface EquRepairWorkOrderMapper { //更新结果检验 void updateResultInspect(EquRepairWorkOrder equRepairWorkOrder); + + //回退维修工单 + void returnRepairWorkOrder(EquRepairWorkOrder dto); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java index ab3c75599..0b9264d5d 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java @@ -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); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java b/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java index 2aa7998a4..35d41f868 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java @@ -71,5 +71,6 @@ public interface IEquRepairWorkOrderService { public int applyEquOutsourceWork(EquRepairWorkOrder equRepairWorkOrder); //维修故障检验 - AjaxResult subInspect(UpKeepOrderDTO upKeepOrderDTO); + AjaxResult checkRepairWorkOrder(UpKeepOrderDTO upKeepOrderDTO); + } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 8c0dcd633..8a14a6a43 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -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 notices = equRepairOrderMapper.getNoticesGroup(noticeQo); + if (!CollectionUtils.isEmpty(notices)) { + List wecharts = new ArrayList<>(); + List 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 list = equRepairOrderMapper.selectEquRepairOrderList(equRepairOrder); + return success(list); + } + + /** + * 获取维修列表 + * + * @param + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getWXList(EquRepairWorkOrder equRepairWorkOrder) { + List list = equRepairWorkOrderMapper.selectEquRepairWorkOrderList(equRepairWorkOrder); + return success(list); + } } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java index eb415717b..27d3c4295 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java @@ -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())){ diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java index 4419651de..db8cbfc98 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java @@ -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_", "")); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java index aa60e15fa..c08eed911 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java @@ -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); } } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java index 86cc4afb6..3bed1b98b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java @@ -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(); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java index 1abbc193e..31e4fefd9 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java @@ -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 notices = equRepairOrderMapper.getNoticesGroup(noticeQo); + if(!CollectionUtils.isEmpty(notices)) { + List wecharts = new ArrayList<>(); + List 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 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); } } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml index fdaac173e..f6f3b019b 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquRepairOrderMapper.xml @@ -30,6 +30,7 @@ + @@ -75,41 +76,26 @@ - 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 @@ -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 + + and ( erwo.result_inspect = '2' or erwo.result_inspect = '1') + and erwo.result_inspect = #{resultInspect} and erwo.order_id = #{orderId} and erwo.work_code like concat('%', #{workCode}, '%') @@ -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 @@ fault_down_time, fault_start_time, result_inspect, + remark, + audit_opinion, #{workId}, @@ -403,6 +414,8 @@ #{faultDownTime}, #{faultStartTime}, #{resultInspect}, + #{remark}, + #{auditOpinion}, @@ -448,6 +461,8 @@ repair_measures = #{repairMeasures}, fault_down_time = #{faultDownTime}, fault_start_time = #{faultStartTime}, + remark = #{remark}, + audit_opinion = #{auditOpinion}, where work_id = #{workId} and del_flag = '0' @@ -456,7 +471,8 @@ update equ_repair_work_order set - result_inspect = #{resultInspect} + result_inspect = #{resultInspect}, + audit_opinion = #{auditOpinion} where work_id = #{workId} @@ -554,4 +570,16 @@ and del_flag = '0' + + 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' + + diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java index a75a09c4a..3861064c5 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java @@ -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; } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkConsumeMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkConsumeMapper.java index a45a914b2..d6f69ff54 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkConsumeMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkConsumeMapper.java @@ -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 getSumConsumeList(MesReportWorkConsume consumeqo); int getSumConsumeListNum(MesReportWorkConsume consumeqo); + + BigDecimal getActAllProduct(MesReportWorkConsume mesReportWorkConsume); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java index 8d49d1a7a..44a56bb09 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java @@ -358,6 +358,12 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer pTabs.setTitle("第"+i+"层工单物料损耗"); mesReportWorkConsume.setParentOrder("0"); List liblist0 = mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume); + + if(!CollectionUtils.isEmpty(liblist0)){ + BigDecimal actPro = mesReportWorkConsumeMapper.getActAllProduct(mesReportWorkConsume); + liblist0.get(0).setQuantityFeedback(actPro); + } + pTabs.setLibList(liblist0); tabs.add(pTabs); diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesPrepareDetailMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesPrepareDetailMapper.xml index ae78454a2..9fe5b0b8d 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesPrepareDetailMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesPrepareDetailMapper.xml @@ -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 diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml index 2c9f01f26..f5b9d049d 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml @@ -202,6 +202,9 @@ and mrw.machine_code = #{machineCode} )t + insert into mes_report_work_consume diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index 68509b2ba..d132b6be6 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml @@ -702,6 +702,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and CONVERT(varchar(10), #{productDateEnd}, 23) >= CONVERT(varchar(10),pow.product_date, 23) + and pow.product_code like concat('%', #{productCode}, '%') order by be.equipment_code diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index 9bbb18bec..b257dbf88 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -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()); // 联系方式 diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java index c81f2d185..78e96367e 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java @@ -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)); + } /** * 自动取称的数据 */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java index f6b7da617..cf51b102a 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java @@ -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; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java index b65034057..4078474e2 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java @@ -47,6 +47,8 @@ public interface QcCheckTaskIncomeMapper { */ public int insertQcCheckTaskIncome(QcCheckTaskIncome qcCheckTaskIncome); + int insertQcCheckTaskIncomeCg(QcCheckTaskIncome qcCheckTaskIncome); + /** * 修改来料检验 * @@ -82,6 +84,9 @@ public interface QcCheckTaskIncomeMapper { List getCkeckProjectList(QcCheckTaskDetail qcCheckTaskDetail); int updateQcCheckTask(QcCheckTaskIncome qcCheckTask); + int updateQcCheckTaskCg(QcCheckTaskIncome qcCheckTask); + + List selectQcCheckTaskCgByRecordId(String recordId); int updateQcCheckTaskDetails(@Param("list") List details); @@ -107,6 +112,8 @@ public interface QcCheckTaskIncomeMapper { QcCheckTaskIncome getTaskInfo(String recordId); + QcCheckTaskIncome getTaskInfoCg(String recordId); + int deleteQcCheckTaskDefects(String belongId); List getCkeckTaskXJList(QcCheckTaskIncome qcCheckTaskIncome); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java index 72d13e7b1..a125d650c 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java @@ -49,4 +49,6 @@ public interface QcInterfaceMapper { @MapKey("nameDate") Map getLineChartsDatas(QcInterface qcInterface); + + QcInterface getProduceHz1(QcInterface qcInterface); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java index dbdd51591..2b3c538ea 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java @@ -47,4 +47,6 @@ public interface QcProCheckService { String getWeightInfo(QcCheckTaskDetail qcCheckTaskDetail); QcCheckTaskDetail getAutoJudge(QcCheckTaskDetail qcCheckTaskDetail); + + QcCheckTaskIncome getCheckTaskDetailListCg(QcCheckTaskDetail qcCheckTaskDetail); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index bc79d2441..5bb13f950 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -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 implements detail.setFileUrls(urls); } } - return dtos; + return dtos; } @Override @@ -610,7 +611,7 @@ public class QcCheckTaskIncomeServiceImpl implements public List getCkeckProjectXJList(QcCheckTaskIncome qcCheckTaskIncome) { List dtos = qcCheckTaskIncomeMapper.getCkeckTaskXJList(qcCheckTaskIncome); for(QcCheckTaskIncome dto:dtos){ - //不良分类 + //不良分类 QcCheckTaskDefect defectqo = new QcCheckTaskDefect(); defectqo.setBelongTo(dto.getRecordId()); List defects = qcCheckTaskDefectMapper.selectQcCheckTaskDefectList(defectqo); @@ -690,8 +691,59 @@ public class QcCheckTaskIncomeServiceImpl 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 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 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 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 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 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 implements //发企业微信--------------------结束 } } + //CAR:0 PC:1 其它:2 吨:3 千克:4 protected String getConvertUnit(String unit){ String unitOa= ""; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java index f014a93ce..7c4b31480 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java @@ -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**/ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java index 76ff9cd16..067582781 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java @@ -82,32 +82,7 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService { String nowYMD = DateUtils.getDate(); qcInterface.setYmd(nowYMD); - //生产打开List dtos = qcInterfaceMapper.getCheckProjectsPie(qcInterface); - /**质量看板测试开始**/ - List 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 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 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 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 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 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 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 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 noOkNum = qcInterfaceMapper.getMothNoOkNum(qcInterface); -// if (noOkNum == null) { -// return null; -// } -// -// List dataBar0 = new ArrayList<>();//不合规数量 -// List 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 dataBar1 = new ArrayList<>();//不合规数量 -// List 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 noOkNum = qcInterfaceMapper.getMothNoOkNum(qcInterface); + if (noOkNum == null) { + return null; + } + List dataBar0 = new ArrayList<>();//不合规数量 List 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 dataBar1 = new ArrayList<>();//不合规数量 List 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 dataBar0 = new ArrayList<>();//不合规数量 +// List dataLine0 = new ArrayList<>();//不合格率 +// List dataBar1 = new ArrayList<>();//不合规数量 +// List 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); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java index 8fe9c061c..b44dc61b1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java @@ -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 qcCheckTaskDetails = qcCheckTaskIncomeMapper.getCkeckProjectList(qcCheckTaskDetail); + /**qc_check_task_defect**/ + Map defectMap = qcCheckTaskDefectMapper.getDefectMap(qcCheckTaskDetail); + + for (QcCheckTaskDetail qcd : qcCheckTaskDetails) { + qcd.setSampleQuality(qcd.getSampleQuality().replaceAll("\\..*", ""));//去掉小数 + + List 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 defects = qcCheckTaskIncomeMapper.getCkeckDefectList(qcCheckTaskDetail); + if (CollectionUtils.isEmpty(defects)) { + defects = qcCheckTaskIncomeMapper.getDefectType(qcCheckTaskDetail); + } + dto.setDefects(defects); + + return dto; + } @Override @DS("master") diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java index f19bffb16..75131a865 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java @@ -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()); } /** diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index a363ca2d9..abdd4fe76 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -315,11 +315,186 @@ remark = #{remark}, reason = #{reason}, bz = #{bz}, + cxzz = #{cxzz}, + jgy = #{jgy}, + pgy = #{pgy}, check_result = #{checkResult}, update_by = #{updateBy}, update_time = #{updateTime} where record_id = #{recordId} + + + insert into qc_check_task_cg + + record_id, + check_no, + income_batch_no, + order_no, + material_code, + material_name, + quality, + noOk_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, + type_code, + sample_quality, + order_type, + order_type_desc, + remark, + reason, + bz, + start_oA, + oa_factory, + material_type, + material_from, + czbjr, + zcf, + zcoemcm, + qczg, + sqr, + sqbm, + oa_factory_f, + sfxyzg, + pgzg, + pgzr, + sfgyswt, + sccj, + aNoOkquality, + bNoOkquality, + cNoOkquality, + + + #{recordId}, + #{checkNo}, + #{incomeBatchNo}, + #{orderNo}, + #{materialCode}, + #{materialName}, + #{quality}, + #{noOkQuality}, + #{unit}, + #{supplierCode}, + #{supplierName}, + #{incomeTime}, + #{checkLoc}, + #{checkStatus}, + #{checkManCode}, + #{checkManName}, + #{checkTime}, + #{checkResult}, + #{status}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{factoryCode}, + #{delFlag}, + #{checkType}, + #{typeCode}, + #{sampleQuality}, + #{orderType}, + #{orderTypeDesc}, + #{remark}, + #{reason}, + #{bz}, + #{startOA}, + #{oaFactory}, + #{materialType}, + #{materialFrom}, + #{czbjr}, + #{zcf}, + #{zcoemcm}, + #{qczg}, + #{sqr}, + #{sqbm}, + #{oaFactoryF}, + #{sfxyzg}, + #{pgzg}, + #{pgzr}, + #{sfgyswt}, + #{sccj}, + #{aNoOkquality}, + #{bNoOkquality}, + #{cNoOkquality}, + + + + + update qc_check_task_cg + set + check_status = #{checkStatus}, + check_man_code = #{checkManCode}, + check_man_name =#{checkManName}, + check_time = #{checkTime}, + sample_quality = #{sampleQuality}, + noOk_quality = #{noOkQuality}, + aNoOkquality = #{aNoOkquality}, + bNoOkquality = #{bNoOkquality}, + cNoOkquality = #{cNoOkquality}, + income_batch_no = #{incomeBatchNo}, + remark = #{remark}, + reason = #{reason}, + bz = #{bz}, + start_oA = #{startOA}, + oa_factory = #{oaFactory}, + material_type = #{materialType}, + material_from = #{materialFrom}, + czbjr = #{czbjr}, + zcf = #{zcf}, + zcoemcm = #{zcoemcm}, + qczg = #{qczg}, + sqr = #{sqr}, + quality = #{quality}, + unit = #{unit}, + sqbm = #{sqbm}, + check_loc = #{checkLoc}, + oa_factory_f = #{oaFactoryF}, + sfxyzg = #{sfxyzg}, + pgzg = #{pgzg}, + pgzr = #{pgzr}, + sfgyswt = #{sfgyswt}, + sccj = #{sccj}, + check_result = #{checkResult}, + update_by = #{updateBy}, + update_time = #{updateTime} + where record_id = #{recordId} + + + + 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} + + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml index eed072475..88166b58b 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml @@ -7,6 +7,7 @@ + + + + insert into base_equipment @@ -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 diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsProductPutMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsProductPutMapper.xml index 07564a799..d05605abb 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsProductPutMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsProductPutMapper.xml @@ -384,5 +384,35 @@ #{item.id} +