From 2c3f1996b9e3b0681750d359857d83b8f48adfce Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Fri, 3 Nov 2023 16:03:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=85=BB=E5=B7=A5=E5=8D=95-=E5=BF=AB?= =?UTF-8?q?=E9=80=9F=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EquUpkeepOrderController.java | 5 +- .../op/device/domain/EquOrderEquSpare.java | 182 ++++++++++++++++++ .../device/mapper/EquOrderEquSpareMapper.java | 61 ++++++ .../com/op/device/mapper/EquOrderMapper.java | 6 + .../service/IEquUpkeepOrderService.java | 4 +- .../impl/EquUpkeepOrderServiceImpl.java | 153 ++++++++++++++- .../mapper/device/EquOrderEquSpareMapper.xml | 128 ++++++++++++ .../mapper/device/EquOrderMapper.xml | 6 + 8 files changed, 536 insertions(+), 9 deletions(-) create mode 100644 op-modules/op-device/src/main/java/com/op/device/domain/EquOrderEquSpare.java create mode 100644 op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderEquSpareMapper.java create mode 100644 op-modules/op-device/src/main/resources/mapper/device/EquOrderEquSpareMapper.xml 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 7f7344d17..7a79430fc 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 @@ -8,6 +8,7 @@ import com.op.common.log.annotation.Log; import com.op.common.log.enums.BusinessType; import com.op.common.security.annotation.RequiresPermissions; import com.op.device.domain.EquOrder; +import com.op.device.domain.EquPlan; import com.op.device.service.IEquUpkeepOrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -66,8 +67,8 @@ public class EquUpkeepOrderController extends BaseController { @RequiresPermissions("device:upkeepOrder:add") @Log(title = "保养工单", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody EquOrder equOrder) { - return toAjax(equUpkeepOrderService.insertEquOrder(equOrder)); + public AjaxResult add(@RequestBody EquPlan equPlan) { + return equUpkeepOrderService.insertEquOrder(equPlan); } /** diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderEquSpare.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderEquSpare.java new file mode 100644 index 000000000..250bd23df --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderEquSpare.java @@ -0,0 +1,182 @@ +package com.op.device.domain; + +import java.math.BigDecimal; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +/** + * 工单设备备件关联对象 equ_order_equ_spare + * + * @author Open Platform + * @date 2023-11-02 + */ +public class EquOrderEquSpare extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 主键 */ + private String id; + + /** 编码 */ + @Excel(name = "编码") + private String code; + + /** 主工单信息 */ + @Excel(name = "主工单信息") + private String orderCode; + + /** 关联上级code */ + @Excel(name = "关联上级code") + private String parentCode; + + /** 备件code */ + @Excel(name = "备件code") + private String materialCode; + + /** 备件名称 */ + @Excel(name = "备件名称") + private String materialDesc; + + /** 备件类型 */ + @Excel(name = "备件类型") + private String spareType; + + /** 申领数量 */ + @Excel(name = "申领数量") + private BigDecimal applyNum; + + /** 工厂 */ + @Excel(name = "工厂") + private String factoryCode; + + /** 备用字段1 */ + @Excel(name = "备用字段1") + private String attr1; + + /** 备用字段2 */ + @Excel(name = "备用字段2") + private String attr2; + + /** 备用字段3 */ + @Excel(name = "备用字段3") + private String attr3; + + /** 删除标识 */ + private String delFlag; + + public void setId(String id) { + this.id = id; + } + + public String getId() { + return id; + } + public void setCode(String code) { + this.code = code; + } + + public String getCode() { + return code; + } + public void setOrderCode(String orderCode) { + this.orderCode = orderCode; + } + + public String getOrderCode() { + return orderCode; + } + public void setParentCode(String parentCode) { + this.parentCode = parentCode; + } + + public String getParentCode() { + return parentCode; + } + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialCode() { + return materialCode; + } + public void setMaterialDesc(String materialDesc) { + this.materialDesc = materialDesc; + } + + public String getMaterialDesc() { + return materialDesc; + } + public void setSpareType(String spareType) { + this.spareType = spareType; + } + + public String getSpareType() { + return spareType; + } + public void setApplyNum(BigDecimal applyNum) { + this.applyNum = applyNum; + } + + public BigDecimal getApplyNum() { + return applyNum; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr1() { + return attr1; + } + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr2() { + return attr2; + } + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr3() { + return attr3; + } + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDelFlag() { + return delFlag; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("code", getCode()) + .append("orderCode", getOrderCode()) + .append("parentCode", getParentCode()) + .append("materialCode", getMaterialCode()) + .append("materialDesc", getMaterialDesc()) + .append("spareType", getSpareType()) + .append("applyNum", getApplyNum()) + .append("factoryCode", getFactoryCode()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderEquSpareMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderEquSpareMapper.java new file mode 100644 index 000000000..58d5c9e6f --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderEquSpareMapper.java @@ -0,0 +1,61 @@ +package com.op.device.mapper; + +import java.util.List; + +import com.op.device.domain.EquOrderEquSpare; + +/** + * 工单设备备件关联Mapper接口 + * + * @author Open Platform + * @date 2023-11-02 + */ +public interface EquOrderEquSpareMapper { + /** + * 查询工单设备备件关联 + * + * @param id 工单设备备件关联主键 + * @return 工单设备备件关联 + */ + public EquOrderEquSpare selectEquOrderEquSpareById(String id); + + /** + * 查询工单设备备件关联列表 + * + * @param equOrderEquSpare 工单设备备件关联 + * @return 工单设备备件关联集合 + */ + public List selectEquOrderEquSpareList(EquOrderEquSpare equOrderEquSpare); + + /** + * 新增工单设备备件关联 + * + * @param equOrderEquSpare 工单设备备件关联 + * @return 结果 + */ + public int insertEquOrderEquSpare(EquOrderEquSpare equOrderEquSpare); + + /** + * 修改工单设备备件关联 + * + * @param equOrderEquSpare 工单设备备件关联 + * @return 结果 + */ + public int updateEquOrderEquSpare(EquOrderEquSpare equOrderEquSpare); + + /** + * 删除工单设备备件关联 + * + * @param id 工单设备备件关联主键 + * @return 结果 + */ + public int deleteEquOrderEquSpareById(String id); + + /** + * 批量删除工单设备备件关联 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteEquOrderEquSpareByIds(String[] ids); +} diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java index a447e04d8..32da1d8a6 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java @@ -92,4 +92,10 @@ public interface EquOrderMapper { * @return */ EquOrder selectEquOrderByOrderId(String orderId); + + /** + * 获取流水号 + * @return + */ + int selectSerialNumber(); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IEquUpkeepOrderService.java b/op-modules/op-device/src/main/java/com/op/device/service/IEquUpkeepOrderService.java index 0827962ba..745111960 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IEquUpkeepOrderService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IEquUpkeepOrderService.java @@ -1,6 +1,8 @@ package com.op.device.service; +import com.op.common.core.web.domain.AjaxResult; import com.op.device.domain.EquOrder; +import com.op.device.domain.EquPlan; import java.util.List; @@ -33,7 +35,7 @@ public interface IEquUpkeepOrderService { * @param equOrder 保养工单 * @return 结果 */ - public int insertEquOrder(EquOrder equOrder); + public AjaxResult insertEquOrder(EquPlan equPlan); /** * 修改保养工单 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepOrderServiceImpl.java index 7255138b3..c19ed49c7 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepOrderServiceImpl.java @@ -1,15 +1,26 @@ package com.op.device.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.context.SecurityContextHolder; import com.op.common.core.utils.DateUtils; -import com.op.device.domain.EquOrder; -import com.op.device.mapper.EquOrderMapper; +import com.op.common.core.utils.uuid.IdUtils; +import com.op.common.core.web.domain.AjaxResult; +import com.op.device.domain.*; +import com.op.device.mapper.*; import com.op.device.service.IEquUpkeepOrderService; +import com.op.system.api.domain.SysUser; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.List; +import static com.op.common.core.web.domain.AjaxResult.success; + /** * 保养工单Service业务层处理 * @@ -20,6 +31,16 @@ import java.util.List; public class EquUpkeepOrderServiceImpl implements IEquUpkeepOrderService { @Autowired private EquOrderMapper equOrderMapper; + @Autowired + private EquOrderEquSpareMapper equOrderEquSpareMapper; + @Autowired + private EquOrderStandardMapper equOrderStandardMapper; + @Autowired + private EquOrderDetailMapper equOrderDetailMapper; + @Autowired + private EquOrderPersonMapper equOrderPersonMapper; + @Autowired + private EquOrderEquMapper equOrderEquMapper; /** * 查询保养工单 @@ -46,16 +67,136 @@ public class EquUpkeepOrderServiceImpl implements IEquUpkeepOrderService { } /** - * 新增保养工单 + * TODO 快速工单 * - * @param equOrder 保养工单 + * @param equPlan 保养工单 * @return 结果 */ @Override @DS("#header.poolName") - public int insertEquOrder(EquOrder equOrder) { + public AjaxResult insertEquOrder(EquPlan equPlan) { + + //获取当前所选工厂 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + String str = request.getHeader(key.substring(8)); + int index = str.indexOf("_"); + String factory = str.substring(index + 1); + + // 生成主工单信息 + EquOrder equOrder = new EquOrder(); + BeanUtils.copyProperties(equPlan,equOrder); + equOrder.setOrderId(IdUtils.fastSimpleUUID()); + // 流水号 + String serialNum = String.format("%03d",equOrderMapper.selectSerialNumber()); + equOrder.setOrderCode("F"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD)+serialNum); + equOrder.setPlanLoopType(""); + equOrder.setPlanLoopStart(equPlan.getPlanTimeArray().get(0)); + equOrder.setPlanLoopEnd(equPlan.getPlanTimeArray().get(1)); + // 设置工单状态 + equOrder.setOrderStatus("0"); + equOrder.setFactoryCode(factory); + equOrder.setCreateBy(SecurityContextHolder.getUserName()); equOrder.setCreateTime(DateUtils.getNowDate()); - return equOrderMapper.insertEquOrder(equOrder); + equOrder.setUpdateBy(SecurityContextHolder.getUserName()); + equOrder.setUpdateTime(DateUtils.getNowDate()); + equOrder.setPlanType("maintenance"); + // 工单插入数据库 + equOrderMapper.insertEquOrder(equOrder); + + // 生成工单-设备 + EquOrderEqu equ = new EquOrderEqu(); + List equPlanEquList = equPlan.getEquipmentItem(); + EquPlanEqu equPlanEqu = equPlanEquList.get(0); + BeanUtils.copyProperties(equPlanEqu,equ); + equ.setId(IdUtils.fastSimpleUUID()); + equ.setCode("E"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD)+"001"); + equ.setParentCode(equOrder.getOrderCode()); + equ.setOrderCode(equOrder.getOrderCode()); + equ.setFactoryCode(factory); + equ.setAttr1(""); + equ.setCreateBy(SecurityContextHolder.getUserName()); + // 设备插入 + equOrderEquMapper.insertEquOrderEqu(equ); + // 生成工单-备件 + List spareList = new ArrayList<>(); + List equSpareList = equPlanEqu.getSpareList(); + int spareSerialNum = 0; + for (EquPlanEquSpare spare : equSpareList) { + EquOrderEquSpare spareTemp = new EquOrderEquSpare(); + BeanUtils.copyProperties(spare,spareTemp); + spareTemp.setId(IdUtils.fastSimpleUUID()); + spareTemp.setCode("S"+equOrder.getOrderCode()+String.format("%03d",++spareSerialNum)); + spareTemp.setOrderCode(equOrder.getOrderCode()); + spareTemp.setParentCode(equ.getCode()); + spareTemp.setFactoryCode(factory); + spareTemp.setCreateBy(SecurityContextHolder.getUserName()); + spareTemp.setCreateTime(DateUtils.getNowDate()); + spareTemp.setUpdateBy(SecurityContextHolder.getUserName()); + spareTemp.setUpdateTime(DateUtils.getNowDate()); + // 插入备件信息 + equOrderEquSpareMapper.insertEquOrderEquSpare(spareTemp); + spareList.add(spareTemp); + } + // 备件置入 + System.out.println(spareList); + // 生成工单-设备-保养项 + List detailList = equPlanEqu.getEquPlanDetailList(); + + int detailSerialNum = 0; + for (EquPlanDetail detail : detailList) { + EquOrderDetail equOrderDetail = new EquOrderDetail(); + List orderStandardList = new ArrayList<>(); + List standardList = detail.getEquPlanStandardList(); + BeanUtils.copyProperties(detail,equOrderDetail); + equOrderDetail.setId(IdUtils.fastSimpleUUID()); + equOrderDetail.setCode("C"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD)+String.format("%03d",++detailSerialNum)); + equOrderDetail.setOrderCode(equOrder.getOrderCode()); + equOrderDetail.setParentCode(equ.getCode()); + equOrderDetail.setFactroyCode(factory); + equOrderDetail.setStandardList(orderStandardList); + equOrderDetail.setCreateBy(SecurityContextHolder.getUserName()); + equOrderDetail.setCreateTime(DateUtils.getNowDate()); + equOrderDetail.setUpdateBy(SecurityContextHolder.getUserName()); + equOrderDetail.setUpdateTime(DateUtils.getNowDate()); + // 插入检查项信息 + equOrderDetailMapper.insertEquOrderDetail(equOrderDetail); + + int standardSerialNum = 0; + for (EquPlanStandard standard : standardList) { + EquOrderStandard orderStandard = new EquOrderStandard(); + BeanUtils.copyProperties(standard,orderStandard); + orderStandard.setId(IdUtils.fastSimpleUUID()); + orderStandard.setCode("S"+equOrder.getOrderCode()+String.format("%03d",++standardSerialNum)); + orderStandard.setParentCode(equOrderDetail.getCode()); + orderStandard.setOrderCode(equOrder.getOrderCode()); + orderStandard.setCreateBy(SecurityContextHolder.getUserName()); + orderStandard.setCreateTime(DateUtils.getNowDate()); + orderStandard.setUpdateBy(SecurityContextHolder.getUserName()); + orderStandard.setUpdateTime(DateUtils.getNowDate()); + // 插入标准信息 + equOrderStandardMapper.insertEquOrderStandard(orderStandard); + } + } + + // 生成工单-人员 + List personList = equPlan.getPersonList(); + for (SysUser user : personList) { + EquOrderPerson equOrderPerson = new EquOrderPerson(); + equOrderPerson.setId(IdUtils.fastSimpleUUID()); + // TODO 要改变编码格式 + equOrderPerson.setOrderCode(equOrder.getOrderCode()); + equOrderPerson.setFactoryCode(factory); + equOrderPerson.setUserId(user.getUserId()); + equOrderPerson.setCreateBy(SecurityContextHolder.getUserName()); + equOrderPerson.setCreateTime(DateUtils.getNowDate()); + equOrderPerson.setUpdateBy(SecurityContextHolder.getUserName()); + equOrderPerson.setUpdateTime(DateUtils.getNowDate()); + // 插入人员信息 + equOrderPersonMapper.insertEquOrderPerson(equOrderPerson); + } + + return success(); } /** diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderEquSpareMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderEquSpareMapper.xml new file mode 100644 index 000000000..0b4e5fca1 --- /dev/null +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderEquSpareMapper.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + select id, code, order_code, parent_code, material_code, material_desc, spare_type, apply_num, factory_code, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time from equ_order_equ_spare + + + + + + + + insert into equ_order_equ_spare + + id, + code, + order_code, + parent_code, + material_code, + material_desc, + spare_type, + apply_num, + factory_code, + attr1, + attr2, + attr3, + del_flag, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{code}, + #{orderCode}, + #{parentCode}, + #{materialCode}, + #{materialDesc}, + #{spareType}, + #{applyNum}, + #{factoryCode}, + #{attr1}, + #{attr2}, + #{attr3}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update equ_order_equ_spare + + code = #{code}, + order_code = #{orderCode}, + parent_code = #{parentCode}, + material_code = #{materialCode}, + material_desc = #{materialDesc}, + spare_type = #{spareType}, + apply_num = #{applyNum}, + factory_code = #{factoryCode}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from equ_order_equ_spare where id = #{id} + + + + delete from equ_order_equ_spare where id in + + #{id} + + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml index ae0833a98..2ffbdad74 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml @@ -111,6 +111,12 @@ where order_id = #{orderId} + + insert into equ_order