lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
@@ -19,6 +19,8 @@ String SECOND_MAINTENANCE_CODE_RULE = "SecondMaintenanceCodeRule"; //ä¸ä¿ç¼ç è§å String THIRD_MAINTENANCE_CODE_RULE = "ThirdMaintenanceCodeRule"; //设å¤ååºå½è¿ String LEAN_OUT_CODE_RULE = "EquipmentLeanOutCodeRule"; /** * å¤ä»¶è¯·è´åç¶æ 1:å·²å建 2:å·²æäº¤ 3:å·²éè¿ 4:已驳å 5:已宿 */ lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentLeanOutStatusEnum.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ package org.jeecg.modules.eam.constant; public enum EquipmentLeanOutStatusEnum { WAIT_SUBMIT, //å¾ æäº¤ WAIT_APPROVAL, //å¾ å®¡æ¹ WAIT_RETURN, //å¾ å½è¿ WAIT_CONFIRM, //å¾ ç¡®è®¤ COMPLETE, //已宿 ; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentLeanOutController.java
@@ -1,167 +1,164 @@ package org.jeecg.modules.eam.controller; import java.util.Arrays; import java.util.List; import java.util.Map; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.entity.EamEquipmentLeanOut; import org.jeecg.modules.eam.service.IEamEquipmentLeanOutService; import java.util.Date; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; import com.alibaba.fastjson.JSON; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.modules.eam.constant.BusinessCodeConst; import org.jeecg.modules.eam.constant.EquipmentLeanOutStatusEnum; import org.jeecg.modules.eam.entity.EamEquipmentLeanOut; import org.jeecg.modules.eam.request.EamEquipmentLeanOutQuery; import org.jeecg.modules.eam.service.IEamEquipmentLeanOutService; import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; /** import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; /** * @Description: 设å¤ååºå½è¿ * @Author: jeecg-boot * @Date: 2025-05-13 * @Date: 2025-05-13 * @Version: V1.0 */ @Slf4j @Api(tags="设å¤ååºå½è¿") @Api(tags = "设å¤ååºå½è¿") @RestController @RequestMapping("/eam/eamEquipmentLeanOut") public class EamEquipmentLeanOutController extends JeecgController<EamEquipmentLeanOut, IEamEquipmentLeanOutService> { @Autowired private IEamEquipmentLeanOutService eamEquipmentLeanOutService; /** * å页å表æ¥è¯¢ * * @param eamEquipmentLeanOut * @param pageNo * @param pageSize * @param req * @return */ @AutoLog(value = "设å¤ååºå½è¿-å页å表æ¥è¯¢") @ApiOperation(value="设å¤ååºå½è¿-å页å表æ¥è¯¢", notes="设å¤ååºå½è¿-å页å表æ¥è¯¢") @GetMapping(value = "/list") public Result<?> queryPageList(EamEquipmentLeanOut eamEquipmentLeanOut, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { QueryWrapper<EamEquipmentLeanOut> queryWrapper = QueryGenerator.initQueryWrapper(eamEquipmentLeanOut, req.getParameterMap()); Page<EamEquipmentLeanOut> page = new Page<EamEquipmentLeanOut>(pageNo, pageSize); IPage<EamEquipmentLeanOut> pageList = eamEquipmentLeanOutService.page(page, queryWrapper); return Result.OK(pageList); } /** * æ·»å * * @param eamEquipmentLeanOut * @return */ @AutoLog(value = "设å¤ååºå½è¿-æ·»å ") @ApiOperation(value="设å¤ååºå½è¿-æ·»å ", notes="设å¤ååºå½è¿-æ·»å ") @PostMapping(value = "/add") public Result<?> add(@RequestBody EamEquipmentLeanOut eamEquipmentLeanOut) { eamEquipmentLeanOutService.save(eamEquipmentLeanOut); return Result.OK("æ·»å æåï¼"); } /** * ç¼è¾ * * @param eamEquipmentLeanOut * @return */ @AutoLog(value = "设å¤ååºå½è¿-ç¼è¾") @ApiOperation(value="设å¤ååºå½è¿-ç¼è¾", notes="设å¤ååºå½è¿-ç¼è¾") @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) public Result<?> edit(@RequestBody EamEquipmentLeanOut eamEquipmentLeanOut) { eamEquipmentLeanOutService.updateById(eamEquipmentLeanOut); return Result.OK("ç¼è¾æå!"); } /** * éè¿idå é¤ * * @param id * @return */ @AutoLog(value = "设å¤ååºå½è¿-éè¿idå é¤") @ApiOperation(value="设å¤ååºå½è¿-éè¿idå é¤", notes="设å¤ååºå½è¿-éè¿idå é¤") @DeleteMapping(value = "/delete") public Result<?> delete(@RequestParam(name="id",required=true) String id) { eamEquipmentLeanOutService.removeById(id); return Result.OK("å 餿å!"); } /** * æ¹éå é¤ * * @param ids * @return */ @AutoLog(value = "设å¤ååºå½è¿-æ¹éå é¤") @ApiOperation(value="设å¤ååºå½è¿-æ¹éå é¤", notes="设å¤ååºå½è¿-æ¹éå é¤") @DeleteMapping(value = "/deleteBatch") public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) { this.eamEquipmentLeanOutService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("æ¹éå 餿åï¼"); } /** * éè¿idæ¥è¯¢ * * @param id * @return */ @AutoLog(value = "设å¤ååºå½è¿-éè¿idæ¥è¯¢") @ApiOperation(value="设å¤ååºå½è¿-éè¿idæ¥è¯¢", notes="设å¤ååºå½è¿-éè¿idæ¥è¯¢") @GetMapping(value = "/queryById") public Result<?> queryById(@RequestParam(name="id",required=true) String id) { EamEquipmentLeanOut eamEquipmentLeanOut = eamEquipmentLeanOutService.getById(id); return Result.OK(eamEquipmentLeanOut); } @Autowired private IEamEquipmentLeanOutService eamEquipmentLeanOutService; @Autowired private ISysBusinessCodeRuleService businessCodeRuleService; /** * 导åºexcel * * @param request * @param eamEquipmentLeanOut */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, EamEquipmentLeanOut eamEquipmentLeanOut) { return super.exportXls(request, eamEquipmentLeanOut, EamEquipmentLeanOut.class, "设å¤ååºå½è¿"); } /** * å页å表æ¥è¯¢ * * @param query * @param pageNo * @param pageSize * @param req * @return */ @ApiOperation(value = "设å¤ååºå½è¿-å页å表æ¥è¯¢", notes = "设å¤ååºå½è¿-å页å表æ¥è¯¢") @GetMapping(value = "/list") public Result<?> queryPageList(EamEquipmentLeanOutQuery query, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { Page<EamEquipmentLeanOut> page = new Page<EamEquipmentLeanOut>(pageNo, pageSize); IPage<EamEquipmentLeanOut> pageList = eamEquipmentLeanOutService.queryPageList(page, query); return Result.OK(pageList); } /** * éè¿excelå¯¼å ¥æ°æ® * * @param request * @param response * @return */ @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, EamEquipmentLeanOut.class); } /** * æ·»å * * @param request * @return */ @AutoLog(value = "设å¤ååºå½è¿-æ·»å ") @ApiOperation(value = "设å¤ååºå½è¿-æ·»å ", notes = "设å¤ååºå½è¿-æ·»å ") @PostMapping(value = "/add") public Result<?> add(@RequestBody EamEquipmentLeanOut request) { if (request == null) { return Result.error("æ·»å ç对象ä¸è½ä¸ºç©ºï¼"); } String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.LEAN_OUT_CODE_RULE); request.setCode(codeSeq); request.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_SUBMIT.name()); boolean b = eamEquipmentLeanOutService.addLeanOut(request); if (!b) { return Result.error("æ·»å 失败ï¼"); } return Result.OK("æ·»å æåï¼"); } /** * ç¼è¾ * * @param request * @return */ @AutoLog(value = "设å¤ååºå½è¿-ç¼è¾") @ApiOperation(value = "设å¤ååºå½è¿-ç¼è¾", notes = "设å¤ååºå½è¿-ç¼è¾") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) public Result<?> edit(@RequestBody EamEquipmentLeanOut request) { if (request == null) { return Result.error("æ·»å ç对象ä¸è½ä¸ºç©ºï¼"); } boolean b = eamEquipmentLeanOutService.editLeanOut(request); if (!b) { return Result.error("ç¼è¾å¤±è´¥ï¼"); } return Result.OK("ç¼è¾æå!"); } /** * éè¿idå é¤ * * @param id * @return */ @AutoLog(value = "设å¤ååºå½è¿-éè¿idå é¤") @ApiOperation(value = "设å¤ååºå½è¿-éè¿idå é¤", notes = "设å¤ååºå½è¿-éè¿idå é¤") @DeleteMapping(value = "/delete") public Result<?> delete(@RequestParam(name = "id", required = true) String id) { eamEquipmentLeanOutService.removeById(id); return Result.OK("å 餿å!"); } /** * æ¹éå é¤ * * @param ids * @return */ @AutoLog(value = "设å¤ååºå½è¿-æ¹éå é¤") @ApiOperation(value = "设å¤ååºå½è¿-æ¹éå é¤", notes = "设å¤ååºå½è¿-æ¹éå é¤") @DeleteMapping(value = "/deleteBatch") public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { this.eamEquipmentLeanOutService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("æ¹éå 餿åï¼"); } /** * éè¿idæ¥è¯¢ * * @param id * @return */ @AutoLog(value = "设å¤ååºå½è¿-éè¿idæ¥è¯¢") @ApiOperation(value = "设å¤ååºå½è¿-éè¿idæ¥è¯¢", notes = "设å¤ååºå½è¿-éè¿idæ¥è¯¢") @GetMapping(value = "/queryById") public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { EamEquipmentLeanOut eamEquipmentLeanOut = eamEquipmentLeanOutService.getById(id); return Result.OK(eamEquipmentLeanOut); } /** * æäº¤ * * @param id * @return */ @AutoLog(value = "设å¤ååºå½è¿-æäº¤") @ApiOperation(value = "设å¤ååºå½è¿-æäº¤", notes = "设å¤ååºå½è¿-æäº¤") @GetMapping(value = "/submit") public Result<?> submit(@RequestParam(name = "id", required = true) String id) { boolean b = eamEquipmentLeanOutService.submit(id); if (!b) { return Result.error("ç¼è¾å¤±è´¥ï¼"); } return Result.OK("å 餿å!"); } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentLeanOut.java
@@ -1,14 +1,18 @@ package org.jeecg.modules.eam.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.jeecg.common.aspect.annotation.Dict; import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; @@ -30,25 +34,21 @@ @ApiModelProperty(value = "主é®") private String id; /**å建人*/ @Excel(name = "å建人", width = 15) @ApiModelProperty(value = "å建人") private String createBy; /**å建æ¶é´*/ @ApiModelProperty(value = "å建æ¶é´") private Date createTime; /**æ´æ°äºº*/ @Excel(name = "æ´æ°äºº", width = 15) @ApiModelProperty(value = "æ´æ°äºº") private String updateBy; /**æ´æ°æ¶é´*/ @ApiModelProperty(value = "æ´æ°æ¶é´") private Date updateTime; /**å 餿 è®°*/ @Excel(name = "å 餿 è®°", width = 15) @ApiModelProperty(value = "å 餿 è®°") private Integer delFlag; /**设å¤ID*/ @Excel(name = "设å¤ID", width = 15) @ApiModelProperty(value = "设å¤ID") private String equipmentId; /**åæ®å·*/ @@ -56,32 +56,69 @@ @ApiModelProperty(value = "åæ®å·") private String code; /**åå ¥é¨é¨*/ @Excel(name = "åå ¥é¨é¨", width = 15) @Excel(name = "åå ¥é¨é¨", width = 15, dictTable = "mdc_production", dicText = "production_name", dicCode = "id") @ApiModelProperty(value = "åå ¥é¨é¨") @Dict(dicCode = "mdc_production, production_name, id") private String leanDepartId; /**åå ¥è´£ä»»äºº*/ @Excel(name = "åå ¥è´£ä»»äºº", width = 15) @ApiModelProperty(value = "åå ¥è´£ä»»äºº") @Dict(dicCode = "sys_user, realname, username") private String leanPerson; /**åç¨åå */ @ApiModelProperty(value = "åç¨åå ") private String leanReason; /**ååºç¶æ*/ @Excel(name = "ååºç¶æ", width = 15) @ApiModelProperty(value = "ååºç¶æ") @Dict(dicCode = "equipment_lean_out_status") private String leanStatus; /**ååºå¼å§æ¶é´*/ @ApiModelProperty(value = "ååºå¼å§æ¶é´") @ApiModelProperty(value = "ååºæ¶é´") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date leanStartTime; /**ååºå½è¿æ¶é´*/ @ApiModelProperty(value = "ååºå½è¿æ¶é´") @ApiModelProperty(value = "å½è¿æ¶é´") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date leanEndTime; /**å®¡æ ¸äºº*/ @Excel(name = "å®¡æ ¸äºº", width = 15) @ApiModelProperty(value = "å®¡æ ¸äºº") @Dict(dicCode = "sys_user, realname, username") private String approvalUser; /**å®¡æ ¸æè§*/ @Excel(name = "å®¡æ ¸æè§", width = 15) @ApiModelProperty(value = "å®¡æ ¸æè§") private String approvalComment; /**å®¡æ ¸æ¶é´*/ @ApiModelProperty(value = "å®¡æ ¸æ¶é´") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date approvalTime; /**确认人*/ @Excel(name = "确认人", width = 15) @ApiModelProperty(value = "确认人") @Dict(dicCode = "sys_user, realname, username") private String confirmUser; /**确认æè§*/ @Excel(name = "确认æè§", width = 15) @ApiModelProperty(value = "确认æè§") private String confirmComment; /**确认æ¶é´*/ @ApiModelProperty(value = "确认æ¶é´") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date confirmTime; /**夿³¨*/ @Excel(name = "夿³¨", width = 15) @ApiModelProperty(value = "夿³¨") private String remark; //å表å±ç¤º @TableField(exist = false) private String equipmentCode; @TableField(exist = false) private String equipmentName; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentLeanOutMapper.java
@@ -1,17 +1,27 @@ package org.jeecg.modules.eam.mapper; import java.util.List; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.eam.entity.EamEquipmentLeanOut; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: 设å¤ååºå½è¿ * @Author: jeecg-boot * @Date: 2025-05-13 * @Date: 2025-05-13 * @Version: V1.0 */ public interface EamEquipmentLeanOutMapper extends BaseMapper<EamEquipmentLeanOut> { /** * å页æ¥è¯¢ * * @param page * @param queryWrapper * @return */ IPage<EamEquipmentLeanOut> queryPageList(Page<EamEquipmentLeanOut> page, @Param(Constants.WRAPPER) QueryWrapper<EamEquipmentLeanOut> queryWrapper); } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentLeanOutMapper.xml
@@ -2,4 +2,11 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.eam.mapper.EamEquipmentLeanOutMapper"> <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamEquipmentLeanOut"> select wmo.*, e.equipment_code, e.equipment_name from eam_equipment_lean_out wmo inner join eam_equipment e on wmo.equipment_id = e.id ${ew.customSqlSegment} </select> </mapper> lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentLeanOutQuery.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package org.jeecg.modules.eam.request; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; @Data public class EamEquipmentLeanOutQuery { private String code; private String equipmentId; @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date leanDateBegin; @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date leanDateEnd; private String leanStatus; private String column; private String order; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentLeanOutService.java
@@ -1,14 +1,47 @@ package org.jeecg.modules.eam.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.eam.entity.EamEquipmentLeanOut; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.eam.request.EamEquipmentLeanOutQuery; /** * @Description: 设å¤ååºå½è¿ * @Author: jeecg-boot * @Date: 2025-05-13 * @Date: 2025-05-13 * @Version: V1.0 */ public interface IEamEquipmentLeanOutService extends IService<EamEquipmentLeanOut> { /** * å页æ¥è¯¢ * * @param page * @param query * @return */ IPage<EamEquipmentLeanOut> queryPageList(Page<EamEquipmentLeanOut> page, EamEquipmentLeanOutQuery query); /** * æ·»å ååºè®°å½ * * @param request * @return */ boolean addLeanOut(EamEquipmentLeanOut request); /** * ç¼è¾ * @param request * @return */ boolean editLeanOut(EamEquipmentLeanOut request); /** * æäº¤ç³è¯· * @param id * @return */ boolean submit(String id); } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java
@@ -1,19 +1,197 @@ package org.jeecg.modules.eam.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.DataBaseConstant; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.constant.AssetStatusEnum; import org.jeecg.modules.eam.constant.EquipmentLeanOutStatusEnum; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamEquipmentLeanOut; import org.jeecg.modules.eam.mapper.EamEquipmentLeanOutMapper; import org.jeecg.modules.eam.request.EamEquipmentLeanOutQuery; import org.jeecg.modules.eam.service.IEamEquipmentLeanOutService; import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.system.service.IMdcProductionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import javax.annotation.Resource; import java.util.Arrays; import java.util.List; /** * @Description: 设å¤ååºå½è¿ * @Author: jeecg-boot * @Date: 2025-05-13 * @Date: 2025-05-13 * @Version: V1.0 */ @Service public class EamEquipmentLeanOutServiceImpl extends ServiceImpl<EamEquipmentLeanOutMapper, EamEquipmentLeanOut> implements IEamEquipmentLeanOutService { @Resource private EamEquipmentLeanOutMapper equipmentLeanOutMapper; @Autowired private IEamEquipmentService eamEquipmentService; @Autowired private IMdcProductionService mdcProductionService; @Override public IPage<EamEquipmentLeanOut> queryPageList(Page<EamEquipmentLeanOut> page, EamEquipmentLeanOutQuery query) { QueryWrapper<EamEquipmentLeanOut> queryWrapper = new QueryWrapper<>(); //ç¨æ·æ°æ®æé LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return page; } if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { //éæ©äºè®¾å¤ï¼æ ¹æ®è®¾å¤idè¿æ»¤è®¾å¤ List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { //没æéæ©è®¾å¤ï¼æ ¹æ®è½¦é´è¿æ»¤è®¾å¤ queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId()); } //æ§å¶å¾ æäº¤ç¶æçæ°æ®åªè½æ¬äººæ¥ç queryWrapper.and(i -> i.ne("wmo.lean_status", EquipmentLeanOutStatusEnum.WAIT_SUBMIT).or().eq("wmo.lean_person", sysUser.getUsername())); //æ¥è¯¢æ¡ä»¶è¿æ»¤ if (query != null) { if (StringUtils.isNotBlank(query.getEquipmentId())) { queryWrapper.eq("wmo.equipment_id", query.getEquipmentId()); } if (StringUtils.isNotBlank(query.getCode())) { queryWrapper.like("wmo.code", query.getCode()); } if (StringUtils.isNotBlank(query.getLeanStatus())) { queryWrapper.eq("wmo.lean_status", query.getLeanStatus()); } if (query.getLeanDateBegin() != null && query.getLeanDateEnd() != null) { queryWrapper.between("wmo.lean_start_time", query.getLeanDateBegin(), query.getLeanDateEnd()); } //æåº if (StringUtils.isNotBlank(query.getColumn()) && StringUtils.isNotBlank(query.getOrder())) { String column = query.getColumn(); if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) { column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX)); } if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(query.getOrder())) { queryWrapper.orderByAsc("wmo." + oConvertUtils.camelToUnderline(column)); } else { queryWrapper.orderByDesc("wmo." + oConvertUtils.camelToUnderline(column)); } } else { queryWrapper.orderByDesc("wmo.create_time"); } } else { queryWrapper.orderByDesc("wmo.create_time"); } return equipmentLeanOutMapper.queryPageList(page, queryWrapper); } @Override @Transactional(rollbackFor = Exception.class) public boolean addLeanOut(EamEquipmentLeanOut request) { //æ£æ¥è®¾å¤ EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId()); if (equipment == null) { throw new JeecgBootException("设å¤ä¸åå¨ï¼"); } if (!AssetStatusEnum.NORMAL.name().equals(equipment.getAssetStatus())) { throw new JeecgBootException("æ¤è®¾å¤å½åèµäº§ç¶æä¸å 许ååºï¼"); } if (StringUtils.isBlank(request.getLeanDepartId())) { throw new JeecgBootException("åå ¥è½¦é´ä¸å 许为空ï¼"); } if (request.getLeanDepartId().equals(equipment.getOrgId())) { throw new JeecgBootException("å½å设å¤å±äºæ¤è½¦é´ï¼ä¸éè¦åç¨ï¼"); } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { throw new JeecgBootException("å½åç¨æ·æ æ³æ·»å åç¨è®°å½ï¼"); } request.setLeanPerson(sysUser.getUsername()); return equipmentLeanOutMapper.insert(request) > 0; } @Override @Transactional(rollbackFor = Exception.class) public boolean editLeanOut(EamEquipmentLeanOut request) { EamEquipmentLeanOut entity = equipmentLeanOutMapper.selectById(request.getId()); if (entity == null) { throw new JeecgBootException("è¦ç¼è¾çæ°æ®ä¸åå¨ï¼è¯·å·æ°éè¯ï¼"); } if(!EquipmentLeanOutStatusEnum.WAIT_SUBMIT.name().equals(entity.getLeanStatus())) { throw new JeecgBootException("å½åæ°æ®ç¶æä¸å 许ç¼è¾ï¼"); } //æ£æ¥è®¾å¤ EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId()); if (equipment == null) { throw new JeecgBootException("设å¤ä¸åå¨ï¼"); } if (!AssetStatusEnum.NORMAL.name().equals(equipment.getAssetStatus())) { throw new JeecgBootException("æ¤è®¾å¤å½åèµäº§ç¶æä¸å 许ååºï¼"); } if (StringUtils.isBlank(request.getLeanDepartId())) { throw new JeecgBootException("åå ¥è½¦é´ä¸å 许为空ï¼"); } if (request.getLeanDepartId().equals(equipment.getOrgId())) { throw new JeecgBootException("å½å设å¤å±äºæ¤è½¦é´ï¼ä¸éè¦åç¨ï¼"); } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { throw new JeecgBootException("å½åç¨æ·æ æ³ç¼è¾åç¨è®°å½ï¼"); } UpdateWrapper<EamEquipmentLeanOut> updateWrapper = new UpdateWrapper<>(); updateWrapper.set("equipment_id", request.getEquipmentId()); updateWrapper.set("lean_depart_id", request.getLeanDepartId()); updateWrapper.set("remark", request.getRemark()); updateWrapper.set("lean_reason", request.getLeanReason()); updateWrapper.eq("id", request.getId()); updateWrapper.eq("lean_person", sysUser.getUsername()); return super.update(updateWrapper); } @Override @Transactional(rollbackFor = Exception.class) public boolean submit(String id) { EamEquipmentLeanOut entity = equipmentLeanOutMapper.selectById(id); if (entity == null) { throw new JeecgBootException("è¦æäº¤çæ°æ®ä¸åå¨ï¼è¯·å·æ°éè¯ï¼"); } if(!EquipmentLeanOutStatusEnum.WAIT_SUBMIT.name().equals(entity.getLeanStatus())) { throw new JeecgBootException("å½åæ°æ®ç¶æä¸å 许ç¼è¾ï¼"); } //æ£æ¥è®¾å¤ EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId()); if (equipment == null) { throw new JeecgBootException("设å¤ä¸åå¨ï¼"); } if (!AssetStatusEnum.NORMAL.name().equals(equipment.getAssetStatus())) { throw new JeecgBootException("æ¤è®¾å¤å½åèµäº§ç¶æä¸å 许ååºï¼"); } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { throw new JeecgBootException("å½åç¨æ·æ æ³ç¼è¾åç¨è®°å½ï¼"); } UpdateWrapper<EamEquipmentLeanOut> updateWrapper = new UpdateWrapper<>(); updateWrapper.set("lean_status", EquipmentLeanOutStatusEnum.WAIT_APPROVAL.name()); updateWrapper.eq("id", id); updateWrapper.eq("lean_person", sysUser.getUsername()); boolean success = super.update(updateWrapper); if(success) { equipment.setAssetStatus(AssetStatusEnum.LEAN_OUT.name()); eamEquipmentService.updateById(equipment); } //å¯å¨å®¡æ¹æµç¨ TODO return true; } }