db/Êý¾Ý¿â²úÆ·»¯Éè¼Æ.pdma.json
@@ -4,7 +4,7 @@ "avatar": "", "version": "4.9.2", "createdTime": "2025-3-10 16:38:19", "updatedTime": "2025-5-23 10:09:30", "updatedTime": "2025-5-26 14:55:20", "dbConns": [], "profile": { "default": { @@ -13473,6 +13473,62 @@ "extProps": {}, "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", "id": "66B3E2F7-B450-4D20-B3B2-5F6E80F99110" }, { "defKey": "approval_deal_type", "defName": "å®¡æ ¸ç±»å", "comment": "", "type": "", "len": "", "scale": "", "primaryKey": false, "notNull": false, "autoIncrement": false, "defaultValue": "", "hideInGraph": false, "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792", "refDict": "", "extProps": {}, "notes": {}, "attr1": "", "attr2": "", "attr3": "", "attr4": "", "attr5": "", "attr6": "", "attr7": "", "attr8": "", "attr9": "", "id": "3F991F63-D842-4D0B-86BD-4CAEB0F1D33D", "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" }, { "defKey": "approval_comment", "defName": "å®¡æ ¸æè§", "comment": "", "type": "", "len": "", "scale": "", "primaryKey": false, "notNull": false, "autoIncrement": false, "defaultValue": "", "hideInGraph": false, "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", "refDict": "", "extProps": {}, "notes": {}, "attr1": "", "attr2": "", "attr3": "", "attr4": "", "attr5": "", "attr6": "", "attr7": "", "attr8": "", "attr9": "", "id": "A885F9EB-FAAE-4D76-ACF5-8E6CBCBA02DD", "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" } ], "correlations": [], lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java
@@ -7,10 +7,7 @@ import org.aspectj.lang.annotation.*; import org.aspectj.lang.reflect.MethodSignature; import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum; import org.jeecg.modules.eam.constant.InspectionStatus; import org.jeecg.modules.eam.constant.ReportRepairEnum; import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum; import org.jeecg.modules.eam.constant.*; import org.jeecg.modules.eam.entity.*; import org.jeecg.modules.eam.service.IEamEquipmentHistoryLogService; import org.springframework.beans.factory.annotation.Autowired; @@ -114,6 +111,16 @@ log.setCreateTime(repair.getFaultStartTime()); } break; /** * èªå®æçé¡¹ç® * * * * * * * */ case REPAIRED: if (result instanceof EamRepairOrder) { EamRepairOrder order = (EamRepairOrder) result; @@ -139,6 +146,16 @@ case UNSEALED: break; case TRANSFERRED: if (result instanceof EamEquipmentTransfer) { EamEquipmentTransfer order = (EamEquipmentTransfer) result; if (EquipmentTransferStatusEnum.COMPLETE.name().equals(order.getTransferStatus())) { log.setEquipmentId(order.getEquipmentId()); log.setBusinessId(order.getId()); log.setOperator(order.getReportUser()); log.setDescription(order.getTransferReason()); log.setCreateTime(order.getTransferTime()); } } break; case SCRAPPED: break; lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
@@ -23,6 +23,8 @@ String LEAN_OUT_CODE_RULE = "EquipmentLeanOutCodeRule"; //设å¤å°åå¯å° String SEAL_UP_CODE_RULE = "EquipmentSealUpCodeRule"; //设å¤è°æ¨ç¼ç è§å String TRANSFER_CODE_RULE = "EquipmentTransferCodeRule"; /** * å¤ä»¶è¯·è´åç¶æ 1:å·²å建 2:å·²æäº¤ 3:å·²éè¿ 4:已驳å 5:已宿 */ lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentTransferStatusEnum.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ package org.jeecg.modules.eam.constant; /** * @author cuikaidong * @date 2025/5/26 */ public enum EquipmentTransferStatusEnum { WAIT_SUBMIT, //å¾ æäº¤ WAIT_CHECK, //å¾ å®¡æ ¸ COMPLETE, //已宿 ; public static EquipmentTransferStatusEnum getInstance(String code) { EquipmentTransferStatusEnum[] values = EquipmentTransferStatusEnum.values(); for (EquipmentTransferStatusEnum value : values) { if (value.name().equals(code)) { return value; } } return null; } } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentTransfer.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,152 @@ 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 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 java.io.Serializable; import java.util.Date; /** * @Description: 设å¤å½å±åå¨ * @Author: jeecg-boot * @Date: 2025-05-13 * @Version: V1.0 */ @Data @TableName("eam_equipment_transfer") @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value = "eam_equipment_transfer对象", description = "设å¤å½å±åå¨") public class EamEquipmentTransfer implements Serializable { /** * ä¸»é® */ @TableId(type = IdType.ASSIGN_ID) @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; /** * åæ®å· */ @Excel(name = "åæ®å·", width = 15) @ApiModelProperty(value = "åæ®å·") private String code; /** * 设å¤ID */ @Excel(name = "设å¤ID", width = 15) @ApiModelProperty(value = "设å¤ID") private String equipmentId; /** * è°åºé¨é¨ */ @Excel(name = "è°åºé¨é¨", width = 15) @ApiModelProperty(value = "è°åºé¨é¨") @Dict(dicCode = "mdc_production, production_name, id") private String oldDepartId; /** * è°å ¥é¨é¨ */ @Excel(name = "è°å ¥é¨é¨", width = 15) @ApiModelProperty(value = "è°å ¥é¨é¨") @Dict(dicCode = "mdc_production, production_name, id") private String newDepartId; /** * ç³è¯·äºº */ @Excel(name = "ç³è¯·äºº", width = 15) @ApiModelProperty(value = "ç³è¯·äºº") @Dict(dicCode = "sys_user, realname, username") private String reportUser; /** * åå¨åå */ @Excel(name = "åå¨åå ", width = 15) @ApiModelProperty(value = "åå¨åå ") private String transferReason; /** * åå¨ç¶æ */ @Excel(name = "åå¨ç¶æ", width = 15) @ApiModelProperty(value = "åå¨ç¶æ") @Dict(dicCode = "equipment_transfer_status") private String transferStatus; /** * å卿¥æ */ @ApiModelProperty(value = "å卿¥æ") private Date transferTime; /** * å®¡æ ¸äºº */ @Excel(name = "å®¡æ ¸äºº", width = 15) @ApiModelProperty(value = "å®¡æ ¸äºº") @Dict(dicCode = "sys_user, realname, username") private String approvalUser; /** * å®¡æ ¸ç±»å */ @ApiModelProperty(value = "å®¡æ ¸ç±»å") @Dict(dicCode = "approved_rejected") private String approvalDealType; /** * å®¡æ ¸æè§ */ @ApiModelProperty(value = "å®¡æ ¸æè§") private String approvalComment; /** * å®¡æ ¸æ¶é´ */ @ApiModelProperty(value = "å®¡æ ¸æ¶é´") private Date approvalTime; /** * 夿³¨ */ @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/controller/EamEquipmentSealUpController.java
@@ -210,13 +210,13 @@ } /** * ç¼è¾ * å®¡æ¹æµ * * @param request * @return */ @AutoLog(value = "设å¤ååºå½è¿-å®¡æ¹æµ") @ApiOperation(value = "设å¤ååºå½è¿-å®¡æ¹æµ", notes = "设å¤ååºå½è¿-å®¡æ¹æµ") @AutoLog(value = "å¯å°å°å-å®¡æ¹æµ") @ApiOperation(value = "å¯å°å°å-å®¡æ¹æµ", notes = "å¯å°å°å-å®¡æ¹æµ") @RequestMapping(value = "/approval", method = {RequestMethod.PUT, RequestMethod.POST}) public Result<?> approval(@RequestBody EamEquipmentSealUpRequest request) { if (request == null) { lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentTransferController.java
@@ -1,167 +1,217 @@ 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.EamEquipmentTransfer; import org.jeecg.modules.eam.service.IEamEquipmentTransferService; import java.util.Date; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.parser.Feature; 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 com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; 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.constant.CommonConstant; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.util.TranslateDictTextUtils; import org.jeecg.modules.eam.constant.BusinessCodeConst; import org.jeecg.modules.eam.constant.EquipmentTransferStatusEnum; import org.jeecg.modules.eam.entity.EamEquipmentTransfer; import org.jeecg.modules.eam.request.EamEquipmentTransferQuery; import org.jeecg.modules.eam.request.EamEquipmentTransferRequest; import org.jeecg.modules.eam.service.IEamEquipmentTransferService; import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** import javax.servlet.http.HttpServletRequest; import java.util.Arrays; import java.util.List; /** * @Description: 设å¤å½å±åå¨ * @Author: jeecg-boot * @Date: 2025-05-13 * @Date: 2025-05-13 * @Version: V1.0 */ @Slf4j @Api(tags="设å¤å½å±åå¨") @Api(tags = "设å¤å½å±åå¨") @RestController @RequestMapping("/eam/eamEquipmentTransfer") public class EamEquipmentTransferController extends JeecgController<EamEquipmentTransfer, IEamEquipmentTransferService> { @Autowired private IEamEquipmentTransferService eamEquipmentTransferService; /** * å页å表æ¥è¯¢ * * @param eamEquipmentTransfer * @param pageNo * @param pageSize * @param req * @return */ @AutoLog(value = "设å¤å½å±åå¨-å页å表æ¥è¯¢") @ApiOperation(value="设å¤å½å±åå¨-å页å表æ¥è¯¢", notes="设å¤å½å±åå¨-å页å表æ¥è¯¢") @GetMapping(value = "/list") public Result<?> queryPageList(EamEquipmentTransfer eamEquipmentTransfer, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { QueryWrapper<EamEquipmentTransfer> queryWrapper = QueryGenerator.initQueryWrapper(eamEquipmentTransfer, req.getParameterMap()); Page<EamEquipmentTransfer> page = new Page<EamEquipmentTransfer>(pageNo, pageSize); IPage<EamEquipmentTransfer> pageList = eamEquipmentTransferService.page(page, queryWrapper); return Result.OK(pageList); } /** * æ·»å * * @param eamEquipmentTransfer * @return */ @AutoLog(value = "设å¤å½å±åå¨-æ·»å ") @ApiOperation(value="设å¤å½å±åå¨-æ·»å ", notes="设å¤å½å±åå¨-æ·»å ") @PostMapping(value = "/add") public Result<?> add(@RequestBody EamEquipmentTransfer eamEquipmentTransfer) { eamEquipmentTransferService.save(eamEquipmentTransfer); return Result.OK("æ·»å æåï¼"); } /** * ç¼è¾ * * @param eamEquipmentTransfer * @return */ @AutoLog(value = "设å¤å½å±åå¨-ç¼è¾") @ApiOperation(value="设å¤å½å±åå¨-ç¼è¾", notes="设å¤å½å±åå¨-ç¼è¾") @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) public Result<?> edit(@RequestBody EamEquipmentTransfer eamEquipmentTransfer) { eamEquipmentTransferService.updateById(eamEquipmentTransfer); 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) { eamEquipmentTransferService.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.eamEquipmentTransferService.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) { EamEquipmentTransfer eamEquipmentTransfer = eamEquipmentTransferService.getById(id); return Result.OK(eamEquipmentTransfer); } @Autowired private IEamEquipmentTransferService eamEquipmentTransferService; @Autowired private ISysBusinessCodeRuleService businessCodeRuleService; @Autowired private ObjectMapper objectMapper; @Autowired private TranslateDictTextUtils translateDictTextUtils; /** * 导åºexcel * * @param request * @param eamEquipmentTransfer */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, EamEquipmentTransfer eamEquipmentTransfer) { return super.exportXls(request, eamEquipmentTransfer, EamEquipmentTransfer.class, "设å¤å½å±åå¨"); } /** * å页å表æ¥è¯¢ * * @param query * @param pageNo * @param pageSize * @param req * @return */ @AutoLog(value = "设å¤å½å±åå¨-å页å表æ¥è¯¢") @ApiOperation(value = "设å¤å½å±åå¨-å页å表æ¥è¯¢", notes = "设å¤å½å±åå¨-å页å表æ¥è¯¢") @GetMapping(value = "/list") public Result<?> queryPageList(EamEquipmentTransferQuery query, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { Page<EamEquipmentTransfer> page = new Page<EamEquipmentTransfer>(pageNo, pageSize); IPage<EamEquipmentTransfer> pageList = eamEquipmentTransferService.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, EamEquipmentTransfer.class); } /** * æ·»å * * @param request * @return */ @AutoLog(value = "设å¤å½å±åå¨-æ·»å ") @ApiOperation(value = "设å¤å½å±åå¨-æ·»å ", notes = "设å¤å½å±åå¨-æ·»å ") @PostMapping(value = "/add") public Result<?> add(@RequestBody EamEquipmentTransfer request) { if (request == null) { return Result.error("æ·»å ç对象ä¸è½ä¸ºç©ºï¼"); } request.setCode(businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.TRANSFER_CODE_RULE)); request.setTransferStatus(EquipmentTransferStatusEnum.WAIT_SUBMIT.name()); request.setDelFlag(CommonConstant.DEL_FLAG_0); boolean b = eamEquipmentTransferService.addTransfer(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 EamEquipmentTransfer request) { if (request == null) { return Result.error("ç¼è¾ç对象ä¸è½ä¸ºç©ºï¼"); } boolean b = eamEquipmentTransferService.editTransfer(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) { EamEquipmentTransfer entity = eamEquipmentTransferService.getById(id); if (entity != null) { entity.setDelFlag(CommonConstant.DEL_FLAG_1); eamEquipmentTransferService.updateById(entity); } 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.eamEquipmentTransferService.removeByIds(Arrays.asList(ids.split(","))); List<String> list = Arrays.asList(ids.split(",")); list.forEach(id -> { EamEquipmentTransfer entity = eamEquipmentTransferService.getById(id); if (entity != null) { entity.setDelFlag(CommonConstant.DEL_FLAG_1); eamEquipmentTransferService.updateById(entity); } }); 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) { EamEquipmentTransfer equipmentTransfer = eamEquipmentTransferService.getById(id); if (equipmentTransfer == null) { return Result.error("æªæ¾å°å¯¹åºæ°æ®"); } try { String json = objectMapper.writeValueAsString(equipmentTransfer); JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); translateDictTextUtils.translateField("reportUser", equipmentTransfer.getReportUser(), item, "sys_user,realname,username"); translateDictTextUtils.translateField("newDepartId", equipmentTransfer.getNewDepartId(), item, "mdc_production,production_name,id"); translateDictTextUtils.translateField("oldDepartId", equipmentTransfer.getOldDepartId(), item, "mdc_production,production_name,id"); return Result.OK(item); } catch (JsonProcessingException e) { return Result.error("æ°æ®è½¬è¯å¤±è´¥ï¼"); } } /** * æäº¤ * * @param id * @return */ @AutoLog(value = "设å¤å½å±åå¨-æäº¤") @ApiOperation(value = "设å¤å½å±åå¨-æäº¤", notes = "设å¤å½å±åå¨-æäº¤") @GetMapping(value = "/submit") public Result<?> submit(@RequestParam(name = "id", required = true) String id) { boolean b = eamEquipmentTransferService.submit(id); if (!b) { return Result.error("æä½å¤±è´¥ï¼"); } return Result.OK("æä½æå!"); } /** * å®¡æ¹æµ * * @param request * @return */ @AutoLog(value = "设å¤å½å±åå¨-å®¡æ¹æµ") @ApiOperation(value = "设å¤å½å±åå¨-å®¡æ¹æµ", notes = "设å¤å½å±åå¨-å®¡æ¹æµ") @RequestMapping(value = "/approval", method = {RequestMethod.PUT, RequestMethod.POST}) public Result<?> approval(@RequestBody EamEquipmentTransferRequest request) { if (request == null) { return Result.error("æ·»å ç对象ä¸è½ä¸ºç©ºï¼"); } EamEquipmentTransfer entity = eamEquipmentTransferService.approval(request); if (entity == null) { return Result.error("æä½å¤±è´¥ï¼"); } return Result.OK("æä½æå!"); } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentTransfer.java
@@ -1,6 +1,7 @@ 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 io.swagger.annotations.ApiModel; @@ -8,85 +9,144 @@ 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 java.io.Serializable; import java.util.Date; /** * @Description: 设å¤å½å±åå¨ * @Author: jeecg-boot * @Date: 2025-05-13 * @Date: 2025-05-13 * @Version: V1.0 */ @Data @TableName("eam_equipment_transfer") @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value="eam_equipment_transfer对象", description="设å¤å½å±åå¨") @ApiModel(value = "eam_equipment_transfer对象", description = "设å¤å½å±åå¨") public class EamEquipmentTransfer implements Serializable { /**主é®*/ @TableId(type = IdType.ASSIGN_ID) /** * ä¸»é® */ @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主é®") private String id; /**å建人*/ @Excel(name = "å建人", width = 15) private String id; /** * å建人 */ @Excel(name = "å建人", width = 15) @ApiModelProperty(value = "å建人") private String createBy; /**å建æ¶é´*/ private String createBy; /** * å建æ¶é´ */ @ApiModelProperty(value = "å建æ¶é´") private Date createTime; /**æ´æ°äºº*/ @Excel(name = "æ´æ°äºº", width = 15) private Date createTime; /** * æ´æ°äºº */ @Excel(name = "æ´æ°äºº", width = 15) @ApiModelProperty(value = "æ´æ°äºº") private String updateBy; /**æ´æ°æ¶é´*/ private String updateBy; /** * æ´æ°æ¶é´ */ @ApiModelProperty(value = "æ´æ°æ¶é´") private Date updateTime; /**å 餿 è®°*/ @Excel(name = "å 餿 è®°", width = 15) private Date updateTime; /** * å 餿 è®° */ @Excel(name = "å 餿 è®°", width = 15) @ApiModelProperty(value = "å 餿 è®°") private Integer delFlag; /**åæ®å·*/ @Excel(name = "åæ®å·", width = 15) private Integer delFlag; /** * åæ®å· */ @Excel(name = "åæ®å·", width = 15) @ApiModelProperty(value = "åæ®å·") private String code; /**设å¤ID*/ @Excel(name = "设å¤ID", width = 15) private String code; /** * 设å¤ID */ @Excel(name = "设å¤ID", width = 15) @ApiModelProperty(value = "设å¤ID") private String equipmentId; /**è°åºé¨é¨*/ @Excel(name = "è°åºé¨é¨", width = 15) private String equipmentId; /** * è°åºé¨é¨ */ @Excel(name = "è°åºé¨é¨", width = 15) @ApiModelProperty(value = "è°åºé¨é¨") private String oldDepartId; /**è°å ¥é¨é¨*/ @Excel(name = "è°å ¥é¨é¨", width = 15) @Dict(dicCode = "mdc_production, production_name, id") private String oldDepartId; /** * è°å ¥é¨é¨ */ @Excel(name = "è°å ¥é¨é¨", width = 15) @ApiModelProperty(value = "è°å ¥é¨é¨") private String newDepartId; /**ç³è¯·äºº*/ @Excel(name = "ç³è¯·äºº", width = 15) @Dict(dicCode = "mdc_production, production_name, id") private String newDepartId; /** * ç³è¯·äºº */ @Excel(name = "ç³è¯·äºº", width = 15) @ApiModelProperty(value = "ç³è¯·äºº") private String reportUser; /**åå¨åå */ @Excel(name = "åå¨åå ", width = 15) @Dict(dicCode = "sys_user, realname, username") private String reportUser; /** * åå¨åå */ @Excel(name = "åå¨åå ", width = 15) @ApiModelProperty(value = "åå¨åå ") private String transferReason; /**åå¨ç¶æ*/ @Excel(name = "åå¨ç¶æ", width = 15) private String transferReason; /** * åå¨ç¶æ */ @Excel(name = "åå¨ç¶æ", width = 15) @ApiModelProperty(value = "åå¨ç¶æ") private String transferStatus; /**å卿¥æ*/ @Dict(dicCode = "equipment_transfer_status") private String transferStatus; /** * å卿¥æ */ @ApiModelProperty(value = "å卿¥æ") private Date transferTime; /**å®¡æ ¸äºº*/ @Excel(name = "å®¡æ ¸äºº", width = 15) private Date transferTime; /** * å®¡æ ¸äºº */ @Excel(name = "å®¡æ ¸äºº", width = 15) @ApiModelProperty(value = "å®¡æ ¸äºº") private String approvalUser; /**å®¡æ ¸æ¶é´*/ @Dict(dicCode = "sys_user, realname, username") private String approvalUser; /** * å®¡æ ¸ç±»å */ @ApiModelProperty(value = "å®¡æ ¸ç±»å") @Dict(dicCode = "approved_rejected") private String approvalDealType; /** * å®¡æ ¸æè§ */ @ApiModelProperty(value = "å®¡æ ¸æè§") private String approvalComment; /** * å®¡æ ¸æ¶é´ */ @ApiModelProperty(value = "å®¡æ ¸æ¶é´") private Date approvalTime; /**夿³¨*/ @Excel(name = "夿³¨", width = 15) private Date approvalTime; /** * 夿³¨ */ @Excel(name = "夿³¨", width = 15) @ApiModelProperty(value = "夿³¨") private String remark; 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/EamEquipmentTransferMapper.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.EamEquipmentTransfer; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: 设å¤å½å±åå¨ * @Author: jeecg-boot * @Date: 2025-05-13 * @Date: 2025-05-13 * @Version: V1.0 */ public interface EamEquipmentTransferMapper extends BaseMapper<EamEquipmentTransfer> { /** * å页æ¥è¯¢ * * @param page * @param queryWrapper * @return */ IPage<EamEquipmentTransfer> queryPageList(Page<EamEquipmentTransfer> page, @Param(Constants.WRAPPER) QueryWrapper<EamEquipmentTransfer> queryWrapper); } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentTransferMapper.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.EamEquipmentTransferMapper"> <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamEquipmentTransfer"> select wmo.*, e.equipment_code, e.equipment_name from eam_equipment_transfer 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/EamEquipmentTransferQuery.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 EamEquipmentTransferQuery { 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 sealStatus; private String column; private String order; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentTransferRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,126 @@ package org.jeecg.modules.eam.request; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.jeecg.modules.flowable.domain.vo.FlowTaskVo; import org.jeecgframework.poi.excel.annotation.Excel; import java.io.Serializable; import java.util.Date; /** * @Description: 设å¤å½å±åå¨ * @Author: jeecg-boot * @Date: 2025-05-13 * @Version: V1.0 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) public class EamEquipmentTransferRequest extends FlowTaskVo implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主é®") private String id; /** * å建人 */ @ApiModelProperty(value = "å建人") private String createBy; /** * å建æ¶é´ */ @ApiModelProperty(value = "å建æ¶é´") private Date createTime; /** * æ´æ°äºº */ @ApiModelProperty(value = "æ´æ°äºº") private String updateBy; /** * æ´æ°æ¶é´ */ @ApiModelProperty(value = "æ´æ°æ¶é´") private Date updateTime; /** * å 餿 è®° */ @ApiModelProperty(value = "å 餿 è®°") private Integer delFlag; /** * åæ®å· */ @ApiModelProperty(value = "åæ®å·") private String code; /** * 设å¤ID */ @ApiModelProperty(value = "设å¤ID") private String equipmentId; /** * è°åºé¨é¨ */ @ApiModelProperty(value = "è°åºé¨é¨") private String oldDepartId; /** * è°å ¥é¨é¨ */ @ApiModelProperty(value = "è°å ¥é¨é¨") private String newDepartId; /** * ç³è¯·äºº */ @ApiModelProperty(value = "ç³è¯·äºº") private String reportUser; /** * åå¨åå */ @ApiModelProperty(value = "åå¨åå ") private String transferReason; /** * åå¨ç¶æ */ @ApiModelProperty(value = "åå¨ç¶æ") private String transferStatus; /** * å卿¥æ */ @ApiModelProperty(value = "å卿¥æ") private Date transferTime; /** * å®¡æ ¸äºº */ @Excel(name = "å®¡æ ¸äºº", width = 15) @ApiModelProperty(value = "å®¡æ ¸äºº") private String approvalUser; /** * å®¡æ ¸æ¶é´ */ @ApiModelProperty(value = "å®¡æ ¸æ¶é´") private Date approvalTime; /** * å®¡æ ¸ç±»å */ @Excel(name = "å®¡æ ¸ç±»å", width = 15) @ApiModelProperty(value = "å®¡æ ¸ç±»å") private String approvalDealType; /** * å®¡æ ¸æè§ */ @ApiModelProperty(value = "å®¡æ ¸æè§") private String approvalComment; /** * 夿³¨ */ @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/service/IEamEquipmentTransferService.java
@@ -1,14 +1,59 @@ package org.jeecg.modules.eam.service; import org.jeecg.modules.eam.entity.EamEquipmentTransfer; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.eam.entity.EamEquipmentTransfer; import org.jeecg.modules.eam.request.EamEquipmentTransferQuery; import org.jeecg.modules.eam.request.EamEquipmentTransferRequest; /** * @Description: 设å¤å½å±åå¨ * @Author: jeecg-boot * @Date: 2025-05-13 * @Date: 2025-05-13 * @Version: V1.0 */ public interface IEamEquipmentTransferService extends IService<EamEquipmentTransfer> { /** * å页æ¥è¯¢ * * @param page * @param query * @return */ IPage<EamEquipmentTransfer> queryPageList(Page<EamEquipmentTransfer> page, EamEquipmentTransferQuery query); /** * æ·»å å°åè®°å½ * * @param request * @return */ boolean addTransfer(EamEquipmentTransfer request); /** * æäº¤ç³è¯· * * @param id * @return */ boolean submit(String id); /** * å®¡æ¹æµç¨æ§å¶ * * @param request * @return */ EamEquipmentTransfer approval(EamEquipmentTransferRequest request); /** * ç¼è¾ * * @param request * @return */ boolean editTransfer(EamEquipmentTransfer request); } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentSealUpServiceImpl.java
@@ -20,10 +20,8 @@ import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.constant.AssetStatusEnum; import org.jeecg.modules.eam.constant.BusinessCodeConst; import org.jeecg.modules.eam.constant.EquipmentLeanOutStatusEnum; import org.jeecg.modules.eam.constant.EquipmentSealUpStatusEnum; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamEquipmentLeanOut; import org.jeecg.modules.eam.entity.EamEquipmentSealUp; import org.jeecg.modules.eam.mapper.EamEquipmentSealUpMapper; import org.jeecg.modules.eam.request.EamEquipmentSealUpQuery; @@ -124,7 +122,6 @@ } else { queryWrapper.orderByDesc("wmo.create_time"); } return equipmentSealUpMapper.queryPageList(page, queryWrapper); } @@ -213,7 +210,7 @@ if (result != null) { entity.setSealEndTime(new Date()); entity.setSealStatus(EquipmentSealUpStatusEnum.WAIT_UNSEALING_AUDIT.name()); //ä¿åå·¥å //ä¿åå·¥å equipmentSealUpMapper.updateById(entity); return result.isSuccess(); } @@ -320,7 +317,7 @@ Map<String, Object> values = new HashMap<>(); switch (status) { // å®¡æ¹ case WAIT_UNSEALING_AUDIT: case WAIT_CHECK: //æ§è¡å®æ values.put("dataId", entity.getId()); values.put("organization", request.getApprovalComment()); @@ -346,7 +343,7 @@ } break; // å·²å°å case SEALED: case WAIT_UNSEALING_AUDIT: values.put("dataId", entity.getId()); values.put("organization", request.getUnsealApprovalComment()); values.put("comment", request.getUnsealApprovalComment()); @@ -360,11 +357,11 @@ } else { //设置entity entity.setSealStatus(EquipmentSealUpStatusEnum.SEALED.name()); entity.setSealEndTime(null); } entity.setUnsealApprovalUser(user.getUsername()); entity.setUnsealApprovalComment(request.getUnsealApprovalComment()); entity.setUnsealApprovalTime(new Date()); // ä¿®æ¹è®¾å¤ç¶æ equipment.setAssetStatus(AssetStatusEnum.NORMAL.name()); eamEquipmentService.updateById(equipment); lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentTransferServiceImpl.java
@@ -1,19 +1,361 @@ package org.jeecg.modules.eam.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; 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.flowable.engine.TaskService; import org.flowable.task.api.Task; import org.jeecg.common.api.vo.Result; 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.aspect.annotation.EquipmentHistoryLog; import org.jeecg.modules.eam.constant.*; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamEquipmentTransfer; import org.jeecg.modules.eam.mapper.EamEquipmentTransferMapper; import org.jeecg.modules.eam.request.EamEquipmentTransferQuery; import org.jeecg.modules.eam.request.EamEquipmentTransferRequest; import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.eam.service.IEamEquipmentTransferService; import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; import org.jeecg.modules.flowable.apithird.service.FlowCommonService; import org.jeecg.modules.flowable.service.IFlowDefinitionService; import org.jeecg.modules.flowable.service.IFlowTaskService; import org.jeecg.modules.system.service.ISysUserService; import org.jeecg.modules.system.vo.UserSelector; 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.*; import java.util.stream.Collectors; /** * @Description: 设å¤å½å±åå¨ * @Author: jeecg-boot * @Date: 2025-05-13 * @Date: 2025-05-13 * @Version: V1.0 */ @Service public class EamEquipmentTransferServiceImpl extends ServiceImpl<EamEquipmentTransferMapper, EamEquipmentTransfer> implements IEamEquipmentTransferService { @Service("IEamEquipmentTransferService") public class EamEquipmentTransferServiceImpl extends ServiceImpl<EamEquipmentTransferMapper, EamEquipmentTransfer> implements IEamEquipmentTransferService, FlowCallBackServiceI { @Resource private EamEquipmentTransferMapper equipmentTransferMapper; @Autowired private IEamEquipmentService eamEquipmentService; @Autowired private FlowCommonService flowCommonService; @Autowired private IFlowDefinitionService flowDefinitionService; @Autowired private IFlowMyBusinessService flowMyBusinessService; @Autowired private TaskService taskService; @Autowired private IFlowTaskService flowTaskService; @Autowired private ISysUserService sysUserService; @Override public IPage<EamEquipmentTransfer> queryPageList(Page<EamEquipmentTransfer> page, EamEquipmentTransferQuery query) { QueryWrapper<EamEquipmentTransfer> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0); //ç¨æ·æ°æ®æé 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.transfer_status", EquipmentTransferStatusEnum.WAIT_SUBMIT).or().eq("wmo.report_user", 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.getSealStatus())) { queryWrapper.eq("wmo.transfer_status", query.getSealStatus()); } 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 equipmentTransferMapper.queryPageList(page, queryWrapper); } @Override @Transactional(rollbackFor = Exception.class) public boolean addTransfer(EamEquipmentTransfer request) { //æ£æ¥è®¾å¤ EamEquipment equipment = eamEquipmentService.getById(request.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("å½åç¨æ·æ æ³æ·»å åç¨è®°å½ï¼"); } if (equipment.getOrgId().equals(request.getNewDepartId())) { throw new JeecgBootException("å½å设å¤å±äºæ¤è½¦é´ï¼ä¸éè¦åå¨ï¼"); } request.setOldDepartId(equipment.getOrgId()); request.setReportUser(sysUser.getUsername()); return equipmentTransferMapper.insert(request) > 0; } @Override @Transactional(rollbackFor = Exception.class) public boolean submit(String id) { EamEquipmentTransfer entity = equipmentTransferMapper.selectById(id); if (entity == null) { throw new JeecgBootException("è¦æäº¤çæ°æ®ä¸åå¨ï¼è¯·å·æ°éè¯ï¼"); } if (!EquipmentTransferStatusEnum.WAIT_SUBMIT.name().equals(entity.getTransferStatus())) { throw new JeecgBootException("å½åæ°æ®ç¶æä¸å 许ç¼è¾ï¼"); } //æ£æ¥è®¾å¤ EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId()); if (equipment == null) { throw new JeecgBootException("设å¤ä¸åå¨ï¼"); } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { throw new JeecgBootException("å½åç¨æ·æ æ³ç¼è¾è½¬è®©è®°å½ï¼"); } UpdateWrapper<EamEquipmentTransfer> updateWrapper = new UpdateWrapper<>(); updateWrapper.set("transfer_status", EquipmentSealUpStatusEnum.WAIT_SUBMIT.name()); updateWrapper.eq("id", id); updateWrapper.eq("report_user", sysUser.getUsername()); boolean success = super.update(updateWrapper); if (success) { equipment.setAssetStatus(AssetStatusEnum.DEALT.name()); // 设å¤è½¬è®© eamEquipmentService.updateById(equipment); } //å¯å¨å®¡æ¹æµç¨ flowCommonService.initActBusiness("å·¥åå·:" + entity.getCode() + ";设å¤ç¼å·: " + equipment.getEquipmentCode() + ";è¿è¡è®¾å¤è½¬è®©", entity.getId(), "IEamEquipmentTransferService", "equipment_transfer", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", entity.getId()); variables.put("organization", entity.getTransferReason()); variables.put("comment", entity.getTransferReason()); variables.put("proofreading", true); // åé ç»è®¾å¤ç®¡çå List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0004); if (CollectionUtil.isEmpty(userSelectors)) { throw new JeecgBootException("è®¾å¤æªåé ç»è®¾å¤ç®¡çåï¼æ æ³è¿å ¥ä¸çº§å®¡æ¹ï¼"); } List<String> usernames = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); variables.put("NextAssignee", usernames); Result result = flowDefinitionService.startProcessInstanceByKey("equipment_transfer", variables); if (result != null) { entity.setTransferTime(new Date()); entity.setTransferStatus(EquipmentTransferStatusEnum.WAIT_CHECK.name()); //ä¿åå·¥å equipmentTransferMapper.updateById(entity); return result.isSuccess(); } return true; } @Override @Transactional(rollbackFor = Exception.class) @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.TRANSFERRED, businessTable = "eam_equipment_transfer") public EamEquipmentTransfer approval(EamEquipmentTransferRequest request) { EamEquipmentTransfer entity = equipmentTransferMapper.selectById(request.getId()); if (entity == null) { throw new JeecgBootException("审æ¹çæ°æ®å·²å é¤ï¼è¯·å·æ°éè¯ï¼"); } // è·åå½åç»å½ç¨æ· LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (user == null || StrUtil.isBlank(user.getId())) { throw new JeecgBootException("æªè·åå°ç»å½ç¨æ·ï¼è¯·éæ°ç»å½ååè¯ï¼"); } request.setApprovalUser(user.getUsername()); // è·åæµç¨ä¸å¡è®°å½ FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId()); if (flowMyBusiness == null) { throw new JeecgBootException("æµç¨å®ä¾ä¸åå¨ï¼è¯·å·æ°åéè¯ï¼"); } boolean userAuthorized = isUserAuthorized(flowMyBusiness, user); if (!userAuthorized) { throw new JeecgBootException("ç¨æ·æ ææä½æ¤ä»»å¡ï¼è¯·å·æ°åéè¯ï¼"); } // 认é¢ä»»å¡ if (!claimTask(flowMyBusiness.getTaskId(), user)) { throw new JeecgBootException("ä»»å¡ä¸åå¨ã已宿æå·²è¢«ä»äººè®¤é¢ï¼"); } EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId()); if (equipment == null) { throw new JeecgBootException("设å¤ä¸åå¨ï¼è¯·æ£æ¥ï¼"); } EquipmentTransferStatusEnum status = EquipmentTransferStatusEnum.getInstance(entity.getTransferStatus()); if (status == null) { return null; } //æµç¨åé Map<String, Object> values = new HashMap<>(); // å®¡æ¹ if (status == EquipmentTransferStatusEnum.WAIT_CHECK) {//æ§è¡å®æ values.put("dataId", entity.getId()); values.put("organization", request.getApprovalComment()); values.put("comment", request.getApprovalComment()); values.put("approvalDealType", request.getApprovalDealType()); request.setComment(request.getApprovalComment()); entity.setApprovalUser(user.getUsername());// å®¡æ ¸äºº entity.setApprovalComment(request.getApprovalComment());// å®¡æ ¸æè§ entity.setApprovalTime(new Date());// å®¡æ ¸æ¶é´ entity.setApprovalDealType(request.getApprovalDealType()); // 审æ¹ç±»å // éªè¯éè¿è¿æ¯é©³å if (request.getApprovalDealType().equals("1")) { //设置entity entity.setTransferStatus(EquipmentTransferStatusEnum.COMPLETE.name()); List<String> userApprovalList = new ArrayList<>(Collections.singletonList(entity.getReportUser())); values.put("NextAssignee", userApprovalList); // ä¿®æ¹è®¾å¤ç¶æ equipment.setAssetStatus(AssetStatusEnum.NORMAL.name()); } else { //设置entity entity.setTransferStatus(EquipmentTransferStatusEnum.WAIT_SUBMIT.name()); // ä¿®æ¹è®¾å¤ç¶æ } entity.setApprovalUser(user.getUsername()); entity.setApprovalComment(request.getApprovalComment()); entity.setApprovalTime(new Date()); eamEquipmentService.updateById(equipment); } request.setValues(values); // 宿æµç¨ä»»å¡ Result result = flowTaskService.complete(request); if (!result.isSuccess()) { throw new JeecgBootException("审æ¹å¤±è´¥ï¼è¯·å·æ°æ¥çï¼"); } //ä¿åå·¥å equipmentTransferMapper.updateById(entity); return entity; } @Override @Transactional(rollbackFor = Exception.class) public boolean editTransfer(EamEquipmentTransfer request) { EamEquipmentTransfer entity = equipmentTransferMapper.selectById(request.getId()); if (entity == null) { throw new JeecgBootException("è¦ç¼è¾çæ°æ®ä¸åå¨ï¼è¯·å·æ°éè¯ï¼"); } if (!EquipmentSealUpStatusEnum.WAIT_SUBMIT.name().equals(entity.getTransferStatus())) { throw new JeecgBootException("å½åæ°æ®ç¶æä¸å 许ç¼è¾ï¼"); } //æ£æ¥è®¾å¤ EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId()); if (equipment == null) { throw new JeecgBootException("设å¤ä¸åå¨ï¼"); } LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { throw new JeecgBootException("å½åç¨æ·æ æ³ç¼è¾åç¨è®°å½ï¼"); } UpdateWrapper<EamEquipmentTransfer> updateWrapper = new UpdateWrapper<>(); updateWrapper.set("equipment_id", request.getEquipmentId()); updateWrapper.set("remark", request.getRemark()); updateWrapper.set("transfer_reason", request.getTransferReason()); updateWrapper.set("old_depart_id", equipment.getOrgId()); updateWrapper.set("new_depart_id", request.getNewDepartId()); updateWrapper.eq("id", request.getId()); updateWrapper.eq("report_user", sysUser.getUsername()); return super.update(updateWrapper); } @Override public void afterFlowHandle(FlowMyBusiness business) { business.getTaskNameId();//æ¥ä¸æ¥å®¡æ¹çèç¹ business.getValues();//åç«¯ä¼ è¿æ¥çåæ° business.getActStatus(); } @Override public Object getBusinessDataById(String dataId) { return this.getById(dataId); } @Override public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) { return null; } @Override public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { return null; } /** * å¤æç¨æ·æ¯å¦æ¥ææ¤æé * * @param flowMyBusiness * @param user * @return */ private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) { List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class); return todoUsers != null && todoUsers.contains(user.getUsername()); } private boolean claimTask(String taskId, LoginUser user) { Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); if (task == null) { return false; } if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) { return false; } taskService.claim(taskId, user.getUsername()); return true; } }