lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/DispatchFileController.java
@@ -183,10 +183,16 @@ return Result.OK(dispatchFile); } @GetMapping(value = "/selectVoById") public Result<?> selectVoById(@RequestParam(name="id") String id){ return dispatchFileService.queryDispatchFile(id); } /** * æ¥è¯¢å®¡ç¾åºæ¬ä¿¡æ¯ * @param id * @return */ @ApiOperation(value = "æ¥è¯¢å®¡ç¾åºæ¬ä¿¡æ¯", notes = "æ¥è¯¢å®¡ç¾åºæ¬ä¿¡æ¯") @GetMapping(value = "/selectVoById") public Result<?> selectVoById(@RequestParam(name="id") String id){ return dispatchFileService.queryDispatchFile(id); } /** * 导åºexcel lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/InspectionStatus.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package org.jeecg.modules.eam.constant; public enum InspectionStatus { INIT("1", "å¾ ç¹æ£"), IN_PROGRESS("2", "ç¹æ£ä¸"), COMPLETED("3", "ç¹æ£å®æ" ), CONFIRMED("4", "已确认" ); private final String code; private final String desc; InspectionStatus(String code, String desc) { this.code = code; this.desc = desc; } // Getters public String getCode() { return code; } public String getDesc() { return desc; } } lxzn-module-eam/pom.xml
@@ -30,6 +30,11 @@ <artifactId>lxzn-module-mdc-common</artifactId> <version>3.4.3</version> </dependency> <dependency> <groupId>org.jeecgframework.boot</groupId> <artifactId>lxzn-module-flowable</artifactId> <version>${jeecgboot.version}</version> </dependency> </dependencies> </project> lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java
@@ -10,8 +10,13 @@ import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.eam.constant.BusinessCodeConst; import org.jeecg.modules.eam.constant.OrderCreationMethodEnum; import org.jeecg.modules.eam.entity.EamInspectionOrder; import org.jeecg.modules.eam.request.EamInspectionOrderRequest; import org.jeecg.modules.eam.service.IEamInspectionOrderService; import org.jeecg.modules.eam.service.IEamMaintenanceStandardService; 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; @@ -31,9 +36,12 @@ @RequestMapping("/eam/eamInspectionOrder") @Slf4j public class EamInspectionOrderController extends JeecgController<EamInspectionOrder, IEamInspectionOrderService> { @Autowired private IEamInspectionOrderService eamInspectionOrderService; @Autowired private IEamInspectionOrderService eamInspectionOrderService; @Autowired private ISysBusinessCodeRuleService businessCodeRuleService; @Autowired private IEamMaintenanceStandardService eamMaintenanceStandardService; /** * å页å表æ¥è¯¢ * @@ -56,36 +64,102 @@ return Result.OK(pageList); } /** * æ¥è¯¢ç¹æ£å·¥ååºæ¬ä¿¡æ¯ * @param id * @return */ @ApiOperation(value = "æ¥è¯¢ç¹æ£å·¥ååºæ¬ä¿¡æ¯", notes = "æ¥è¯¢ç¹æ£å·¥ååºæ¬ä¿¡æ¯") @GetMapping(value = "/selectVoById") public Result<?> selectVoById(@RequestParam(name="id") String id){ return eamInspectionOrderService.selectVoById(id); } /** * æ·»å * * @param eamInspectionOrder * @param eamInspectionOrderRequest * @return */ @AutoLog(value = "ç¹æ£å·¥å-æ·»å ") @ApiOperation(value="ç¹æ£å·¥å-æ·»å ", notes="ç¹æ£å·¥å-æ·»å ") //@RequiresPermissions("org.jeecg.modules:ç¹æ£å·¥å:add") @PostMapping(value = "/add") public Result<String> add(@RequestBody EamInspectionOrder eamInspectionOrder) { eamInspectionOrderService.save(eamInspectionOrder); public Result<String> add(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) { String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.INSPECTION_ORDER_CODE_RULE); eamInspectionOrderRequest.setOrderNum(codeSeq); eamInspectionOrderRequest.setCreationMethod(String.valueOf(OrderCreationMethodEnum.AUTO)); eamInspectionOrderService.addInspectionOrder(eamInspectionOrderRequest); return Result.OK("æ·»å æåï¼"); } /** * ç¼è¾ * * @param eamInspectionOrder * @param eamInspectionOrderRequest * @return */ @AutoLog(value = "ç¹æ£å·¥å-ç¼è¾") @ApiOperation(value="ç¹æ£å·¥å-ç¼è¾", notes="ç¹æ£å·¥å-ç¼è¾") //@RequiresPermissions("org.jeecg.modules:ç¹æ£å·¥å:edit") @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) public Result<String> edit(@RequestBody EamInspectionOrder eamInspectionOrder) { eamInspectionOrderService.updateById(eamInspectionOrder); public Result<String> edit(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) { eamInspectionOrderService.editInspectionOrder(eamInspectionOrderRequest); return Result.OK("ç¼è¾æå!"); } /** * é¢åç¹æ£å·¥å * @param id * @return */ @AutoLog(value = "ç¹æ£å·¥å-é¢åç¹æ£å·¥å") @ApiOperation(value="ç¹æ£å·¥å-é¢åç¹æ£å·¥å", notes="ç¹æ£å·¥å-é¢åç¹æ£å·¥å") @GetMapping(value = "/receiveInspectionOrder") public Result<String> receiveInspectionOrder(@RequestParam(name="id") String id) { eamInspectionOrderService.takeInspectionOrder(id); return Result.OK("é¢åæå"); } /** * ä½åºç¹æ£å·¥å * @param id * @return */ @AutoLog(value = "ç¹æ£å·¥å-ä½åºç¹æ£å·¥å") @ApiOperation(value="ç¹æ£å·¥å-ä½åºç¹æ£å·¥å", notes="ç¹æ£å·¥å-ä½åºç¹æ£å·¥å") @GetMapping(value = "/cancelInspectionOrder") public Result<String> cancelInspectionOrder(@RequestParam(name="id") String id) { eamInspectionOrderService.cancelInspectionOrder(id); return Result.OK("ä½åºæå"); } /** * æ¹éä½åºä¸é¢å * @param ids * @param type * @return */ @AutoLog(value = "ç¹æ£å·¥å-æ¹éä½åºä¸é¢å") @ApiOperation(value="ç¹æ£å·¥å-æ¹éä½åºä¸é¢å", notes="ç¹æ£å·¥å-æ¹éä½åºä¸é¢å") @GetMapping(value = "/cancelOrReceive") public Result<?> cancelOrReceive(@RequestParam(name="ids") String ids, @RequestParam(name="type") String type) { return eamInspectionOrderService.batchCancelOrTakeInspectionOrder(ids, type); } /** * ç¹æ£æµç¨ * @param eamInspectionOrderRequest * @return */ @AutoLog(value = "ç¹æ£æµç¨") @ApiOperation(value="ç¹æ£å·¥å-ç¹æ£æµç¨", notes="ç¹æ£å·¥å-ç¹æ£æµç¨") @PostMapping("/approval") public Result<?> approval(@RequestBody EamInspectionOrderRequest eamInspectionOrderRequest) { return eamInspectionOrderService.inspectionProcess(eamInspectionOrderRequest); } /** * éè¿idå é¤ * lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderDetailController.java
@@ -1,5 +1,6 @@ package org.jeecg.modules.eam.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -19,8 +20,9 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.List; /** /** * @Description: ç¹æ£å·¥åæç» * @Author: jeecg-boot * @Date: 2025-04-02 @@ -158,4 +160,20 @@ return super.importExcel(request, response, EamInspectionOrderDetail.class); } /** * 䏿¬¡å è½½ * * @param orderId * @return */ @ApiOperation(value = "ä¿å »æ åæç»-ä¸å页å表æ¥è¯¢", notes = "ä¿å »æ åæç»-ä¸å页å表æ¥è¯¢") @GetMapping(value = "/queryList") public Result<?> queryList(@RequestParam("orderId") String orderId) { LambdaQueryWrapper<EamInspectionOrderDetail> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(EamInspectionOrderDetail::getOrderId, orderId); queryWrapper.orderByAsc(EamInspectionOrderDetail::getItemCode); List<EamInspectionOrderDetail> list = eamInspectionOrderDetailService.list(queryWrapper); return Result.OK(list); } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java
@@ -64,12 +64,12 @@ /**设å¤ID*/ @Excel(name = "设å¤ID", width = 15) @ApiModelProperty(value = "设å¤ID") @Dict(dictTable = "eam_equipment", dicCode = "equipment_code", dicText = "id") @Dict(dictTable = "eam_equipment", dicCode = "id", dicText = "equipment_code") private String equipmentId; /**æ åID*/ @Excel(name = "ä¿å »æ åID", width = 15) @ApiModelProperty(value = "ä¿å »æ åID") @Dict(dictTable = "eam_maintenance_standard", dicCode = "standard_code", dicText = "id") @Dict(dictTable = "eam_maintenance_standard", dicCode = "id", dicText = "standard_code") private String standardId; /**ç¹æ£æ¥æ*/ @Excel(name = "ç¹æ£æ¥æï¼è®¡åï¼", width = 15, format = "yyyy-MM-dd") @@ -97,10 +97,12 @@ /**å建æ¹å¼*/ @Excel(name = "å建æ¹å¼", width = 15) @ApiModelProperty(value = "å建æ¹å¼") @Dict(dicCode = "order_creation_method") private String creationMethod; /**ç¹æ£ç¶æ*/ @Excel(name = "ç¹æ£ç¶æ", width = 15) @ApiModelProperty(value = "ç¹æ£ç¶æ å¾ ç¹æ£-å¾ ç¡®è®¤-已宿") @ApiModelProperty(value = "ç¹æ£ç¶æ å¾ ç¹æ£-ç¹æ£ä¸-å¾ ç¡®è®¤-已宿-ä½åº") @Dict(dicCode = "inspection_status") private String inspectionStatus; /**çç»é¿ç¡®è®¤*/ @Excel(name = "çç»é¿ç¡®è®¤", width = 15) @@ -121,4 +123,14 @@ @Excel(name = "ç §çæä»¶ids;id以éå·åé-æ§è¡æ¶", width = 15) @ApiModelProperty(value = "ç §çæä»¶ids;id以éå·åé") private String imageFiles; /**æ ååç§°*/ @ApiModelProperty(value = "æ ååç§°") private transient String standardName; /**ä¿å »å¨æ;åä½:天*/ @ApiModelProperty(value = "ä¿å »å¨æ;åä½:天") private transient Integer maintenancePeriod; /**设å¤ç¼å·*/ @ApiModelProperty(value = "设å¤ç¼å·") private transient String equipmentCode; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,126 @@ package org.jeecg.modules.eam.request; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.jeecg.common.api.vo.FileUploadResult; import org.jeecg.common.aspect.annotation.Dict; import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; import org.jeecg.modules.flowable.domain.vo.FlowTaskVo; import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; import java.util.List; @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) public class EamInspectionOrderRequest extends FlowTaskVo implements Serializable { private static final long serialVersionUID = 1L; /**主é®*/ @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主é®") private String id; /**å建人*/ @ApiModelProperty(value = "å建人") @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") private String createBy; /**å建æ¶é´*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "å建æ¶é´") private Date createTime; /**æ´æ°äºº*/ @ApiModelProperty(value = "æ´æ°äºº") private String updateBy; /**æ´æ°æ¶é´*/ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "æ´æ°æ¶é´") private Date updateTime; /**å 餿 è®°*/ @Excel(name = "å 餿 è®°", width = 15) @ApiModelProperty(value = "å 餿 è®°") @TableLogic private Integer delFlag; /**å·¥åå·*/ @Excel(name = "å·¥åå·", width = 15) @ApiModelProperty(value = "å·¥åå·") private String orderNum; /**设å¤ID*/ @Excel(name = "设å¤ID", width = 15) @ApiModelProperty(value = "设å¤ID") @Dict(dictTable = "eam_equipment", dicCode = "equipment_code", dicText = "id") private String equipmentId; /**æ åID*/ @Excel(name = "ä¿å »æ åID", width = 15) @ApiModelProperty(value = "ä¿å »æ åID") @Dict(dictTable = "eam_maintenance_standard", dicCode = "standard_code", dicText = "id") private String standardId; /**ç¹æ£æ¥æ*/ @Excel(name = "ç¹æ£æ¥æï¼è®¡åï¼", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "ç¹æ£æ¥æ") private Date inspectionDate; /**ç¹æ£è¿ææ¶é´*/ @Excel(name = "ç¹æ£è¿ææ¶é´", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "ç¹æ£è¿ææ¶é´") private Date expirationTime; /**ç¹æ£æ¶é´*/ @Excel(name = "ç¹æ£æ¶é´ï¼å®é ï¼", width = 15, format = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "ç¹æ£æ¶é´") private Date operateTime; /**ç¹æ£äºº*/ @Excel(name = "ç¹æ£äºº", width = 15) @ApiModelProperty(value = "ç¹æ£äºº-æ¯é¢å人") @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") private String operator; /**å建æ¹å¼*/ @Excel(name = "å建æ¹å¼", width = 15) @ApiModelProperty(value = "å建æ¹å¼") private String creationMethod; /**ç¹æ£ç¶æ*/ @Excel(name = "ç¹æ£ç¶æ", width = 15) @ApiModelProperty(value = "ç¹æ£ç¶æ å¾ ç¹æ£-å¾ ç¡®è®¤-已宿") private String inspectionStatus; /**çç»é¿ç¡®è®¤*/ @Excel(name = "çç»é¿ç¡®è®¤", width = 15) @ApiModelProperty(value = "çç»é¿ç¡®è®¤--é¢åå产ç") @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") private String confirmUser; /**确认æ¶é´*/ @Excel(name = "确认æ¶é´", width = 15, format = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "确认æ¶é´") private Date confirmTime; /**夿³¨*/ @Excel(name = "夿³¨", width = 15) @ApiModelProperty(value = "夿³¨-ç¹æ£å·¥ååå»ºå¤æ³¨") private String remark; /**ç §çæä»¶ids;id以éå·åé*/ @Excel(name = "ç §çæä»¶ids;id以éå·åé-æ§è¡æ¶", width = 15) @ApiModelProperty(value = "ç §çæä»¶ids;id以éå·åé") private String imageFiles; /**ä¸ä¼ æä»¶å¯¹ç³»*/ @ApiModelProperty(value = "ä¸ä¼ æä»¶å¯¹è±¡") private List<FileUploadResult> fileList; /**å表 ä¿å »é¡¹æç»*/ @ApiModelProperty(value = "å表 ä¿å »é¡¹æç»") private List<EamInspectionOrderDetail> tableDetailList; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java
@@ -1,7 +1,9 @@ package org.jeecg.modules.eam.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.eam.entity.EamInspectionOrder; import org.jeecg.modules.eam.request.EamInspectionOrderRequest; /** * @Description: ç¹æ£å·¥å @@ -11,4 +13,54 @@ */ public interface IEamInspectionOrderService extends IService<EamInspectionOrder> { /** * æ°å¢ç¹æ£å·¥å * @param eamInspectionOrderRequest * @return */ boolean addInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest); /** * ç¼è¾ç¹æ£å·¥å * @param eamInspectionOrderRequest * @return */ boolean editInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest); /** * é¢åç¹æ£å·¥å * @param id * @return */ boolean takeInspectionOrder(String id); /** * ä½åºç¹æ£å·¥å * @param id * @return */ boolean cancelInspectionOrder(String id); /** * æ¹éä½åºä¸é¢å * @param ids * @param type * @return */ Result<?> batchCancelOrTakeInspectionOrder(String ids, String type); /** * æ¥è¯¢ç¹æ£å·¥ååºæ¬ä¿¡æ¯ * @param id * @return */ Result<?> selectVoById(String id); /** * ç¹æ£æµç¨ * @param eamInspectionOrderRequest * @return */ Result<?> inspectionProcess(EamInspectionOrderRequest eamInspectionOrderRequest); } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
@@ -1,10 +1,40 @@ 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.extension.service.impl.ServiceImpl; 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.system.vo.LoginUser; import org.jeecg.modules.eam.constant.InspectionStatus; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamInspectionOrder; import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; import org.jeecg.modules.eam.mapper.EamInspectionOrderMapper; import org.jeecg.modules.eam.request.EamInspectionOrderRequest; import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.eam.service.IEamInspectionOrderDetailService; import org.jeecg.modules.eam.service.IEamInspectionOrderService; import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; import org.jeecg.modules.flowable.apithird.business.service.impl.FlowMyBusinessServiceImpl; 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.entity.SysUser; import org.jeecg.modules.system.service.IMdcUserProductionService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; /** * @Description: ç¹æ£å·¥å @@ -12,7 +42,317 @@ * @Date: 2025-04-02 * @Version: V1.0 */ @Service public class EamInspectionOrderServiceImpl extends ServiceImpl<EamInspectionOrderMapper, EamInspectionOrder> implements IEamInspectionOrderService { @Service("IEamInspectionOrderService") public class EamInspectionOrderServiceImpl extends ServiceImpl<EamInspectionOrderMapper, EamInspectionOrder> implements IEamInspectionOrderService, FlowCallBackServiceI { @Autowired private IEamInspectionOrderDetailService eamInspectionOrderDetailService; @Resource private FlowCommonService flowCommonService; @Resource private IFlowDefinitionService flowDefinitionService; @Autowired private IFlowTaskService flowTaskService; @Autowired private IEamEquipmentService eamEquipmentService; @Autowired private FlowMyBusinessServiceImpl flowMyBusinessService; @Autowired private TaskService taskService; @Autowired private IEamEquipmentService iEamEquipmentService; @Autowired private IMdcUserProductionService mdcUserProductionService; @Override @Transactional(rollbackFor = Exception.class) public boolean addInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) { EamInspectionOrder eamInspectionOrder = new EamInspectionOrder(); BeanUtils.copyProperties(eamInspectionOrderRequest,eamInspectionOrder); //ä¿®æ¹ç¶æ if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())){ eamInspectionOrder.setInspectionStatus(InspectionStatus.IN_PROGRESS.getCode()); }else { eamInspectionOrder.setInspectionStatus(InspectionStatus.INIT.getCode()); } save(eamInspectionOrder); //å¤çæç»æ°æ® if(CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) { eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> { tableDetail.setOrderId(eamInspectionOrder.getId()); tableDetail.setId(null); }); eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList()); } if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())){ triggerProcess(eamInspectionOrder); } return true; } /** * è§¦åæµç¨ * @param eamInspectionOrder * @return */ public boolean triggerProcess(EamInspectionOrder eamInspectionOrder) { EamEquipment equipment = eamEquipmentService.getById(eamInspectionOrder.getEquipmentId()); if (equipment == null) { return false; }else { eamInspectionOrder.setEquipmentCode(equipment.getEquipmentCode()); } System.out.println("设å¤ç¹æ£ï¼" + eamInspectionOrder.getId()); flowCommonService.initActBusiness("å·¥åå·ï¼"+eamInspectionOrder.getOrderNum()+"设å¤ç¼å·"+eamInspectionOrder.getEquipmentCode()+"è¿è¡è®¾å¤ç¹æ£", eamInspectionOrder.getId(), "IEamInspectionOrderService", "eam_inspection", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", eamInspectionOrder.getId()); if (StrUtil.isEmpty(eamInspectionOrder.getRemark())){ variables.put("organization", "æ°å¢ç¹æ£å·¥åé»è®¤å¯å¨æµç¨"); variables.put("comment", "æ°å¢ç¹æ£å·¥åé»è®¤å¯å¨æµç¨"); }else { variables.put("organization", eamInspectionOrder.getRemark()); variables.put("comment", eamInspectionOrder.getRemark()); } variables.put("proofreading",true); List<String> usernames=new ArrayList<>(); usernames.add(eamInspectionOrder.getOperator()); variables.put("NextAssignee", usernames); Result result= flowDefinitionService.startProcessInstanceByKey("eam_inspection", variables); return result.isSuccess(); } @Override public boolean editInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) { EamInspectionOrder eamInspectionOrder = new EamInspectionOrder(); BeanUtils.copyProperties(eamInspectionOrderRequest, eamInspectionOrder); updateById(eamInspectionOrder); //å¤çæç»æ°æ® if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) { eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> { tableDetail.setOrderId(eamInspectionOrder.getId()); }); //å é¤æç» eamInspectionOrderDetailService.remove(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", eamInspectionOrder.getId())); eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList()); } return true; } /** * é¢åç¹æ£å·¥å * @param id * @return */ @Override public boolean takeInspectionOrder(String id){ LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); EamInspectionOrder eamInspectionOrder=this.getById(id); if (eamInspectionOrder==null) { return false; }else { eamInspectionOrder.setOperator(user.getUsername()); //ä¿®æ¹ç¶æ eamInspectionOrder.setInspectionStatus(InspectionStatus.IN_PROGRESS.getCode()); this.triggerProcess(eamInspectionOrder); this.updateById(eamInspectionOrder); return true; } } /** * ä½åºç¹æ£å·¥å * @param id * @return */ @Override public boolean cancelInspectionOrder(String id){ EamInspectionOrder eamInspectionOrder = this.getById(id); if (eamInspectionOrder == null) { return false; }else { eamInspectionOrder.setInspectionStatus("5"); return updateById(eamInspectionOrder); } } /** * ç¹æ£æµç¨ * @param eamInspectionOrderRequest * @return */ @Override @Transactional public Result<?> inspectionProcess(EamInspectionOrderRequest eamInspectionOrderRequest){ try { // åæ°æ ¡éª if (!StrUtil.isNotBlank(eamInspectionOrderRequest.getTaskId()) || !StrUtil.isNotBlank(eamInspectionOrderRequest.getDataId())) { return Result.error("鿳忰"); } LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); eamInspectionOrderRequest.setAssignee(user.getUsername()); if (!StrUtil.isNotBlank(userId)) { return Result.error("è´¦å·ä¸åå¨"); } // æ°æ®æ¥è¯¢ EamInspectionOrder eamInspectionOrder = this.getById(eamInspectionOrderRequest.getDataId()); if (eamInspectionOrder == null) { return Result.error("æªæ¾å°å¯¹åºæ°æ®"); } // 2. æ¥è¯¢æµç¨ä¸å¡è®°å½ï¼å¤çç©ºç»æï¼ List<FlowMyBusiness> businessList = flowMyBusinessService.list( new QueryWrapper<FlowMyBusiness>() .eq("process_instance_id", eamInspectionOrderRequest.getInstanceId()) ); if (businessList.isEmpty()) { return Result.error("æµç¨è®°å½ä¸åå¨"); } FlowMyBusiness flowMyBusiness = businessList.get(0); // 3. æ ¡éªç¨æ·æ¯å¦ä¸ºåéå¤ç人 List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class); if (todoUsers == null || !todoUsers.contains(user.getUsername())) { return Result.error("ç¨æ·æ ææä½æ¤ä»»å¡"); } // 4. 认é¢ä»»å¡ï¼å¤ç已被认é¢çæ åµï¼ String taskId = flowMyBusiness.getTaskId(); Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); if (task == null) { return Result.error("ä»»å¡ä¸å卿已宿"); } if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) { return Result.error("ä»»å¡å·²è¢«ä»äººè®¤é¢"); } taskService.claim(taskId, user.getUsername()); Map<String, Object> values = new HashMap<>(); if ((InspectionStatus.IN_PROGRESS.getCode()).equals(eamInspectionOrder.getInspectionStatus())) { //ç¹æ£äººç¹æ£ç»æ //æ¥è¯¢å¯¹åºçç»é¿,ä½ä¸ºä¸ä¸èç¹å¤ç人,åå¨å¤ä¸ªå¤ç人 String orgId=iEamEquipmentService.getById(eamInspectionOrder.getEquipmentId()).getOrgId(); //çéåºçç»é¿å²ä½,post为PCR0003 List<SysUser> sysUserList= mdcUserProductionService.queryByPostAndProId("PCR0003",orgId); List<String> usernameList; if (sysUserList.isEmpty()){ return Result.error("æªæ¾å°è¯¥è®¾å¤å¯¹åºè½¦é´ççç»é¿ï¼è¯·è系管çåå¤ç"); }else { usernameList = sysUserList.stream().map(SysUser::getUsername).collect(Collectors.toList()); } // 设置æµç¨åé values.put("dataId", eamInspectionOrder.getId()); values.put("organization", "ç¹æ£äººç¹æ£ç»æ"); values.put("comment","ç¹æ£äººç¹æ£ç»æ" ); values.put("NextAssignee", usernameList); eamInspectionOrderRequest.setComment("ç¹æ£äººç¹æ£ç»æ"); }else { //çç»é¿ç¡®è®¤ values.put("dataId", eamInspectionOrder.getId()); values.put("organization", "çç»é¿ç¡®è®¤"); values.put("comment","çç»é¿ç¡®è®¤" ); eamInspectionOrderRequest.setComment("çç»é¿ç¡®è®¤"); } eamInspectionOrderRequest.setValues(values); // 宿æµç¨ä»»å¡ Result result = flowTaskService.complete(eamInspectionOrderRequest); if (result.isSuccess()) { // æ´æ°ç¶æ if ((InspectionStatus.IN_PROGRESS.getCode()).equals(eamInspectionOrder.getInspectionStatus())) { //ç¹æ£å®æ eamInspectionOrder.setInspectionStatus("3"); eamInspectionOrder.setInspectionDate(new Date()); eamInspectionOrderDetailService.remove(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", eamInspectionOrder.getId())); eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList()); this.updateById(eamInspectionOrder); } } else if ((InspectionStatus.COMPLETED.getCode()).equals(eamInspectionOrder.getInspectionStatus())){ // çç»é¿ç¡®è®¤ä»»å¡ eamInspectionOrder.setInspectionStatus("4"); eamInspectionOrder.setConfirmUser(user.getUsername()); eamInspectionOrder.setConfirmTime(new Date()); this.updateById(eamInspectionOrder); //å¤çå¼å¸¸æ°æ®è¿å ¥ç»´ä¿®å return result; } return Result.OK("æä½æå"); } catch (Exception e) { return Result.error("æä½å¤±è´¥ï¼" + e.getMessage()); } } /** * æ¹éä½åºä¸é¢å * @param ids * @param type * @return */ @Override @Transactional(rollbackFor = Exception.class) public Result<?> batchCancelOrTakeInspectionOrder(String ids, String type){ if (type == null) { return Result.error("è¯·éæ©æä½ç±»å"); } LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); List<String> list = Arrays.asList(ids.split(",")); QueryWrapper<EamInspectionOrder> queryWrapper =new QueryWrapper<>(); queryWrapper.in("id", list); queryWrapper.eq("inspection_status", "1"); List<EamInspectionOrder> eamInspectionOrderList =this.list(queryWrapper); if (!eamInspectionOrderList.isEmpty()){ eamInspectionOrderList.forEach(eamInspectionOrder -> { eamInspectionOrder.setInspectionStatus(type); if (type.equals("2")){ eamInspectionOrder.setOperator(loginUser.getUsername()); }else { eamInspectionOrder.setOperator(null); } }); this.updateBatchById(eamInspectionOrderList); } return Result.OK("æä½æå"); } @Override public Result<?> selectVoById(String id){ List<EamInspectionOrder> eamInspectionOrders=this.list(new QueryWrapper<EamInspectionOrder>().eq("id", id)); List<EamInspectionOrderRequest> eamInspectionOrderRequestList=new ArrayList<>(); eamInspectionOrders.forEach(eamInspectionOrder -> { EamInspectionOrderRequest eamInspectionOrderRequest=new EamInspectionOrderRequest(); BeanUtils.copyProperties(eamInspectionOrder,eamInspectionOrderRequest); List<EamInspectionOrderDetail> eamInspectionOrderDetails=eamInspectionOrderDetailService .list(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", eamInspectionOrder.getId())); eamInspectionOrderRequest.setTableDetailList(eamInspectionOrderDetails); eamInspectionOrderRequestList.add(eamInspectionOrderRequest); }); return Result.ok(eamInspectionOrderRequestList); } @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) { //ä¸å¡æ¯å¦å¹²é¢æµç¨ï¼ä¸å¡å¹²é¢ï¼æµç¨å¹²é¢ï¼æå®äººåè¿è¡å¤ç //è·åä¸ä¸æ¥å¤ç人 Object object=values.get("NextAssignee"); return (List<String>) object; } }