From ed839069a1df066d9559263129e999de7e9c2ccc Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期三, 19 三月 2025 13:40:58 +0800 Subject: [PATCH] 修改产品结构树,修改指派程序至设备 --- lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamFlowController.java | 40 ++- lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java | 12 + lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProductMix.java | 26 ++ lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java | 8 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/dto/FlowMyBusinessDto.java | 13 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IFlowTaskService.java | 6 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/FlowMy.java | 4 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskDataVo.java | 19 + lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamController.java | 9 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/FlowTaskController.java | 8 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java | 18 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/aspect/DncFlowDictAspect.java | 81 ++++++ lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/dto/FlowTaskDto.java | 19 + lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java | 125 +++++---- lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/AssignFileStream.java | 2 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java | 10 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/HisWorkTask.java | 2 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java | 63 +--- lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskVoMapper.xml | 13 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/AssignFileStreamMapper.xml | 7 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java | 8 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DevicePermissionServiceImpl.java | 11 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/PermissionStreamNewMapper.xml | 12 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java | 21 + lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IPermissionStreamNewService.java | 8 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/utils/TreeBuilder.java | 3 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PermissionStreamNewServiceImpl.java | 43 +++ lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml | 64 +++++ lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java | 11 lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/ext/AssignFileStreamExt.java | 2 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PartsInfoServiceImpl.java | 9 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java | 10 32 files changed, 500 insertions(+), 187 deletions(-) diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProductMix.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProductMix.java index d49a1f1..5cd7a3d 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProductMix.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/entity/ProductMix.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; @@ -10,6 +11,7 @@ import java.io.Serializable; import java.util.ArrayList; +import java.util.Date; import java.util.List; @Getter @@ -34,6 +36,9 @@ // 绫诲瀷 @TableField(value = "tree_type") private Integer type; + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + @TableField(value = "create_time") + private Date createTime; //灞曠ず鍚嶇О private transient String label; @@ -41,7 +46,7 @@ private transient List<ProductMix> children = new ArrayList<>(); - public ProductMix(Long id, Long parentId, String name, String code, Integer type) { + public ProductMix(Long id, Long parentId, String name, String code, Integer type, Date createTime) { this.id = id; this.parentId = parentId; this.name = name; @@ -49,10 +54,29 @@ this.type = type; this.children = new ArrayList<>(); this.label="["+code+"]"+name; + this.createTime = createTime; } public void addChild(ProductMix child) { this.children.add(child); } + + public ProductMix(Date createTime) { + this.createTime = createTime; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + @Override + public String toString() { + return "ProductMix{createTime=" + createTime + '}'; + } + } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/PermissionStreamNewMapper.xml b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/PermissionStreamNewMapper.xml index de844de..7511418 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/PermissionStreamNewMapper.xml +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/mapper/xml/PermissionStreamNewMapper.xml @@ -8,7 +8,8 @@ mix.name, mix.parent_id, mix.tree_type AS 'type', - mix.extend + mix.extend, + mix.create_time FROM nc_product_mix mix -- 杩炴帴鏉冮檺琛紝绛涢�夐儴闂ㄧ浉鍏宠褰� LEFT JOIN nc_permission_stream_new nps_depart ON mix.id = nps_depart.business_id @@ -25,7 +26,8 @@ AND nps_user.delete_flag = '0' WHERE nps_depart.business_id IS NOT NULL - AND nps_user.business_id IS NOT NULL; + AND nps_user.business_id IS NOT NULL + order by mix.tree_type, mix.create_time asc </select> <select id="loadProductMixAll" resultType="org.jeecg.modules.dnc.entity.ProductMix"> SELECT DISTINCT @@ -34,13 +36,15 @@ mix.name, mix.parent_id, mix.tree_type AS 'type', - mix.extend + mix.extend, + mix.create_time FROM nc_product_mix mix -- 杩炴帴鏉冮檺琛紝绛涢�夐儴闂ㄧ浉鍏宠褰� LEFT JOIN nc_permission_stream_new nps_user ON mix.id = nps_user.business_id AND nps_user.user_id = #{userId} AND nps_user.delete_flag = '0' WHERE - nps_user.business_id IS NOT NULL; + nps_user.business_id IS NOT NULL + order by mix.tree_type, mix.create_time asc </select> </mapper> diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IPermissionStreamNewService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IPermissionStreamNewService.java index 15b4436..71b1f1f 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IPermissionStreamNewService.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IPermissionStreamNewService.java @@ -89,4 +89,12 @@ * @return */ List<PermissionStreamNew> loadPermissionStreamNewByBusinessIdsAndDepartIds(List<String> businessIds,List<String> departIds,String businessType); + + /** + * 閫氳繃娣诲姞鏉冮檺 + * @param permissionStream + * @return + */ + boolean addPermissionStreamNew(PermissionStreamNew permissionStream); + } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java index c8a6245..2c31d2c 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ComponentInfoSeServiceImpl.java @@ -24,10 +24,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; +import java.util.*; @Service public class ComponentInfoSeServiceImpl extends ServiceImpl<ComponentInfoMapper, ComponentInfo> implements IComponentInfoService { @@ -121,15 +118,22 @@ ExceptionCast.cast(ProductInfoCode.PRODUCT_SAVE_ERROR); } //娣诲姞缁撴瀯鏍� - ProductMix productMix = new ProductMix(Long.parseLong(componentInfo.getComponentId()),Long.parseLong(productInfo.getProductId()) - ,componentInfo.getComponentName(),componentInfo.getComponentCode(),2); + ProductMix productMix=null; + if (componentInfo.getParentId() != null) { + //瀛愰儴浠� + productMix = new ProductMix(Long.parseLong(componentInfo.getComponentId()),Long.parseLong(componentInfo.getParentId()) + ,componentInfo.getComponentName(),componentInfo.getComponentCode(),2,new Date()); + }else { + productMix = new ProductMix(Long.parseLong(componentInfo.getComponentId()),Long.parseLong(productInfo.getProductId()) + ,componentInfo.getComponentName(),componentInfo.getComponentCode(),2,new Date()); + } productMixService.save(productMix); //娣诲姞鏉冮檺 PermissionStreamNew stream = new PermissionStreamNew(); stream.setUserId(userId); stream.setBusinessId(componentInfo.getComponentId()); stream.setBusinessType("2"); - return permissionStreamNewService.save(stream); + return permissionStreamNewService.addPermissionStreamNew(stream); } @Override diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DevicePermissionServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DevicePermissionServiceImpl.java index a980d40..498a9e9 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DevicePermissionServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DevicePermissionServiceImpl.java @@ -8,6 +8,7 @@ import org.jeecg.common.constant.CommonConstant; import org.jeecg.modules.dnc.entity.DevicePermission; import org.jeecg.modules.dnc.mapper.DevicePermissionMapper; +import org.jeecg.modules.dnc.service.IDevicePermissionService; import org.jeecg.modules.dnc.ucenter.UserDepartExt; import org.jeecg.modules.dnc.utils.ValidateUtil; import org.jeecg.modules.mdc.entity.MdcEquipment; @@ -16,9 +17,9 @@ import org.jeecg.modules.mdc.util.FindsEquipmentProductionUtil; import org.jeecg.modules.system.entity.MdcProduction; import org.jeecg.modules.system.entity.SysUser; -import org.jeecg.modules.dnc.service.IDevicePermissionService; import org.jeecg.modules.system.service.IMdcProductionService; import org.jeecg.modules.system.service.IMdcUserProductionService; +import org.jeecg.modules.system.service.ISysUserService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -36,6 +37,8 @@ private IMdcUserProductionService mdcUserProductionService; @Resource private MdcEquipmentMapper mdcEquipmentMapper; + @Resource + private ISysUserService sysUserService; @Override public DevicePermission getByUserIdAndDeviceId(String userId, String deviceId) { @@ -144,6 +147,12 @@ List<MdcEquipment> equipmentList = mdcEquipmentMapper.queryByProductionIdAndType(mdcEquipmentTree.getKey(),deviceIds); if (equipmentList != null && !equipmentList.isEmpty()) { for (MdcEquipment mdcEquipment : equipmentList) { + if (mdcEquipment.getCreateBy()!=null&& !mdcEquipment.getCreateBy().isEmpty()){ + mdcEquipment.setCreateBy(sysUserService.getUserByName(mdcEquipment.getCreateBy()).getRealname()); + } + if (mdcEquipment.getUpdateBy()!=null&& !mdcEquipment.getUpdateBy().isEmpty()){ + mdcEquipment.setUpdateBy(sysUserService.getUserByName(mdcEquipment.getUpdateBy()).getRealname()); + } MdcEquipmentTree tree = new MdcEquipmentTree().convert(mdcEquipment); tree.setParentId(mdcEquipmentTree.getKey()); tree.setEntity(mdcEquipment); diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PartsInfoServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PartsInfoServiceImpl.java index ef03230..59fcce6 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PartsInfoServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PartsInfoServiceImpl.java @@ -24,10 +24,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; +import java.util.*; @Service public class PartsInfoServiceImpl extends ServiceImpl<PartsInfoMapper, PartsInfo> implements IPartsInfoService { @@ -111,14 +108,14 @@ } //娣诲姞缁撴瀯鏍� ProductMix productMix = new ProductMix(Long.parseLong(partsInfo.getPartsId()),Long.parseLong(partsInfo.getComponentId()) - ,partsInfo.getPartsName(),partsInfo.getPartsCode(),3); + ,partsInfo.getPartsName(),partsInfo.getPartsCode(),3,new Date()); productMixService.save(productMix); //娣诲姞鐢ㄦ埛鏉冮檺 PermissionStreamNew stream = new PermissionStreamNew(); stream.setBusinessId(partsInfo.getPartsId()); stream.setBusinessType("3"); stream.setUserId(userId); - return permissionStreamNewService.save(stream); + return permissionStreamNewService.addPermissionStreamNew(stream); } @Override diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PermissionStreamNewServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PermissionStreamNewServiceImpl.java index a41ec75..074a073 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PermissionStreamNewServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/PermissionStreamNewServiceImpl.java @@ -10,13 +10,19 @@ import org.jeecg.modules.dnc.entity.ProductMix; import org.jeecg.modules.dnc.mapper.PermissionStreamNewMapper; import org.jeecg.modules.dnc.service.IPermissionStreamNewService; +import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.system.service.ISysUserService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import java.util.Objects; @Service public class PermissionStreamNewServiceImpl extends ServiceImpl<PermissionStreamNewMapper, PermissionStreamNew> implements IPermissionStreamNewService { + @Autowired + private ISysUserService sysUserService; /** * 鏍规嵁鐢ㄦ埛id鑾峰彇缁撴瀯鏍戞潈闄� @@ -240,4 +246,41 @@ return total; } + /** + * 閫氳繃娣诲姞鏉冮檺 + * @param permissionStream + * @return + */ + @Override + public boolean addPermissionStreamNew(PermissionStreamNew permissionStream) { + // 楠岃瘉鍙傛暟鏈夋晥鎬� + if (permissionStream == null) { + return false; + } + // 鑾峰彇绠$悊鍛樼敤鎴� + SysUser adminUser = sysUserService.getUserByName("admin"); + if (adminUser == null) { + // 鑻ョ鐞嗗憳鐢ㄦ埛涓嶅瓨鍦紝鍙牴鎹疄闄呮儏鍐靛鐞嗭紝杩欓噷绠�鍗曡繑鍥� false + return false; + } + try { + boolean isAdmin = Objects.equals(permissionStream.getUserId(), adminUser.getId()); + // 淇濆瓨鏈韩鏉冮檺 + super.save(permissionStream); + if (!isAdmin) { + // 鑻ヤ笉鏄鐞嗗憳锛屽鍒朵竴涓柊鐨� PermissionStreamNew 瀵硅薄骞惰缃负绠$悊鍛� ID 鍚庝繚瀛� + PermissionStreamNew adminPermissionStream = new PermissionStreamNew(); + adminPermissionStream.setUserId(adminUser.getId()); + adminPermissionStream.setBusinessId(permissionStream.getBusinessId()); + adminPermissionStream.setBusinessType(permissionStream.getBusinessType()); + super.save(adminPermissionStream); + } + return true; + } catch (Exception e) { + // 璁板綍寮傚父淇℃伅锛屾柟渚垮悗缁帓鏌ラ棶棰� + e.printStackTrace(); + return false; + } + } + } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java index bec7eda..22055f0 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java @@ -21,10 +21,7 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; +import java.util.*; @Service public class ProcessSpecVersionServiceImpl extends ServiceImpl<ProcessSpecVersionMapper, ProcessSpecVersion> implements IProcessSpecVersionService{ @@ -155,14 +152,15 @@ } //娣诲姞缁撴瀯鏍� ProductMix productMix = new ProductMix(Long.parseLong(ProcessSpecVersion.getId()),Long.parseLong(ProcessSpecVersion.getPartsId()) - ,ProcessSpecVersion.getProcessSpecVersionName(),ProcessSpecVersion.getProcessSpecVersionCode(),4); + ,ProcessSpecVersion.getProcessSpecVersionName(), + ProcessSpecVersion.getProcessSpecVersionCode(),4,new Date()); productMixService.save(productMix); //娣诲姞鐢ㄦ埛鏉冮檺 PermissionStreamNew stream = new PermissionStreamNew(); stream.setBusinessId(ProcessSpecVersion.getId()); stream.setBusinessType("4"); stream.setUserId(userId); - return permissionStreamNewService.save(stream); + return permissionStreamNewService.addPermissionStreamNew(stream); } /** diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java index 819c3bf..d080ac3 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java @@ -21,10 +21,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; +import java.util.*; @Service public class ProcessStreamServiceImpl extends ServiceImpl<ProcessStreamMapper, ProcessStream> implements IProcessStreamService { @@ -135,10 +132,10 @@ ProductMix productMix; if (stream.getPsvId() != null) { productMix = new ProductMix(Long.parseLong(stream.getProcessId()),Long.parseLong(stream.getPsvId()) - ,stream.getProcessName(),stream.getProcessCode(),5); + ,stream.getProcessName(),stream.getProcessCode(),5,new Date()); }else { productMix = new ProductMix(Long.parseLong(stream.getProcessId()),Long.parseLong(stream.getComponentId()) - ,stream.getProcessName(),stream.getProcessCode(),5); + ,stream.getProcessName(),stream.getProcessCode(),5,new Date()); } productMixService.save(productMix); //娣诲姞鏉冮檺楠岃瘉 @@ -146,7 +143,7 @@ permissionStream.setUserId(userId); permissionStream.setBusinessId(stream.getProcessId()); permissionStream.setBusinessType("5"); - return permissionStreamNewService.save(permissionStream); + return permissionStreamNewService.addPermissionStreamNew(permissionStream); } @Override diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java index 4204924..ee700e9 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java @@ -108,14 +108,31 @@ ExceptionCast.cast(ProductInfoCode.PRODUCT_SAVE_ERROR); } //娣诲姞缁撴瀯鏍� - ProductMix productMix = new ProductMix(Long.parseLong(productInfo.getProductId()),0L,productInfo.getProductName(),productInfo.getProductNo(),1); + ProductMix productMix = new ProductMix(Long.parseLong(productInfo.getProductId()),0L, + productInfo.getProductName(),productInfo.getProductNo(),1,new Date()); productMixService.save(productMix); + //娣诲姞鐢ㄦ埛閮ㄩ棬 + if(StrUtil.isNotBlank(user.getProductionIds())){ + String[] split = user.getProductionIds().split(","); + String[] departIds = split; + for (String departId : departIds) { + ProductDepartment productDepartment = new ProductDepartment(); + productDepartment.setProductId(productInfo.getProductId()); + productDepartment.setDepartId(departId); + productDepartmentService.save(productDepartment); + PermissionStreamNew stream = new PermissionStreamNew(); + stream.setBusinessId(productInfo.getProductId()); + stream.setDepartId(departId); + stream.setBusinessType("1"); + permissionStreamNewService.save(stream); + } + } //娣诲姞鐢ㄦ埛鏉冮檺 PermissionStreamNew stream = new PermissionStreamNew(); stream.setBusinessId(productInfo.getProductId()); stream.setUserId(userId); stream.setBusinessType("1"); - return permissionStreamNewService.save(stream); + return permissionStreamNewService.addPermissionStreamNew(stream); } @Override diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java index ef787db..d9eb74e 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductMixServiceImpl.java @@ -11,9 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; @Service public class ProductMixServiceImpl extends ServiceImpl<ProductMixMapper, ProductMix> implements IProductMixService { @@ -40,6 +38,8 @@ cleanResult.getValidNodes(), cleanResult.getNodeMap() ); - return builder.assembleTree(sorted, cleanResult.getNodeMap()); + List<ProductMix> result =builder.assembleTree(sorted, cleanResult.getNodeMap()); + result.sort(Comparator.comparing(ProductMix::getCreateTime, Comparator.nullsLast(Date::compareTo))); + return result; } } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java index 4415e17..90a1463 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java @@ -22,10 +22,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; +import java.util.*; /** * @Description: TODO @@ -122,6 +119,7 @@ pd.setStepId(workStep.getId()); workStepDepartmentList.add(pd); PermissionStreamNew perm = new PermissionStreamNew(); + perm.setDepartId(item.getDepartId()); perm.setBusinessId(workStep.getId()); perm.setBusinessType("6"); permissionStreamList.add(perm); @@ -144,14 +142,14 @@ } //娣诲姞缁撴瀯鏍� ProductMix productMix = new ProductMix(Long.parseLong(workStep.getId()),Long.parseLong(workStep.getProcessId()) - ,workStep.getStepName(),workStep.getStepCode(),6); + ,workStep.getStepName(),workStep.getStepCode(),6,new Date()); productMixService.save(productMix); //娣诲姞鏉冮檺楠岃瘉 PermissionStreamNew permissionStream = new PermissionStreamNew(); permissionStream.setUserId(userId); permissionStream.setBusinessId(workStep.getId()); permissionStream.setBusinessType("6"); - return permissionStreamNewService.save(permissionStream); + return permissionStreamNewService.addPermissionStreamNew(permissionStream); } /** diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/utils/TreeBuilder.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/utils/TreeBuilder.java index 7387b27..16ded6a 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/utils/TreeBuilder.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/utils/TreeBuilder.java @@ -110,7 +110,8 @@ node.getParentId(), node.getName(), node.getCode(), - node.getType() + node.getType(), + node.getCreateTime() ); treeMap.put(newNode.getId(), newNode); }); diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/aspect/DncFlowDictAspect.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/aspect/DncFlowDictAspect.java new file mode 100644 index 0000000..cf918fd --- /dev/null +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/aspect/DncFlowDictAspect.java @@ -0,0 +1,81 @@ +package org.jeecg.modules.dncFlow.aspect; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.system.aspect.DicAspectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @Description: Dnc瀛楀吀aop绫� + * @Version: 1.0 + */ +@Aspect +@Component +@Slf4j +public class DncFlowDictAspect { + @Autowired + private DicAspectService dicAspectService; + + // 瀹氫箟鍒囩偣Pointcut + @Pointcut("execution(public * org.jeecg.modules.dncFlow..*.*Controller.*(..))") + public void excudeService() { + } + + @Around("excudeService()") + public Object doAround(ProceedingJoinPoint pjp) throws Throwable { + long time1=System.currentTimeMillis(); + Object result = pjp.proceed(); + long time2=System.currentTimeMillis(); + log.debug("鑾峰彇JSON鏁版嵁 鑰楁椂锛�"+(time2-time1)+"ms"); + long start=System.currentTimeMillis(); + this.parseDictText(result); + long end=System.currentTimeMillis(); + log.debug("瑙f瀽娉ㄥ叆JSON鏁版嵁 鑰楁椂"+(end-start)+"ms"); + return result; + } + + /** + * 鏈柟娉曢拡瀵硅繑鍥炲璞′负Result 鐨処Page鐨勫垎椤靛垪琛ㄦ暟鎹繘琛屽姩鎬佸瓧鍏告敞鍏� + * 瀛楀吀娉ㄥ叆瀹炵幇 閫氳繃瀵瑰疄浣撶被娣诲姞娉ㄨВ@dict 鏉ユ爣璇嗛渶瑕佺殑瀛楀吀鍐呭,瀛楀吀鍒嗕负鍗曞瓧鍏竎ode鍗冲彲 锛宼able瀛楀吀 code table text閰嶅悎浣跨敤涓庡師鏉eecg鐨勭敤娉曠浉鍚� + * 绀轰緥涓篠ysUser 瀛楁涓簊ex 娣诲姞浜嗘敞瑙Dict(dicCode = "sex") 浼氬湪瀛楀吀鏈嶅姟绔嬮┈鏌ュ嚭鏉ュ搴旂殑text 鐒跺悗鍦ㄨ姹俵ist鐨勬椂鍊欏皢杩欎釜瀛楀吀text锛屽凡瀛楁鍚嶇О鍔燺dictText褰㈠紡杩斿洖鍒板墠绔� + * 渚嬭緭鍏ュ綋鍓嶈繑鍥炲�肩殑灏变細澶氬嚭涓�涓猻ex_dictText瀛楁 + * { + * sex:1, + * sex_dictText:"鐢�" + * } + * 鍓嶇鐩存帴鍙栧�約ext_dictText鍦╰able閲岄潰鏃犻渶鍐嶈繘琛屽墠绔殑瀛楀吀杞崲浜� + * customRender:function (text) { + * if(text==1){ + * return "鐢�"; + * }else if(text==2){ + * return "濂�"; + * }else{ + * return text; + * } + * } + * 鐩墠vue鏄繖涔堣繘琛屽瓧鍏告覆鏌撳埌table涓婄殑澶氫簡灏卞緢楹荤儲浜� 杩欎釜鐩存帴鍦ㄦ湇鍔$娓叉煋瀹屾垚鍓嶇鍙互鐩存帴鐢� + * @param result + */ + private void parseDictText(Object result) { + if (result instanceof Result) { + if (((Result) result).getResult() instanceof IPage) { + List<JSONObject> items = dicAspectService.detailDict(((IPage) ((Result) result).getResult()).getRecords()); + ((IPage) ((Result) result).getResult()).setRecords(items); + } + else if(((Result) result).getResult() instanceof List){ + List<JSONObject> items = dicAspectService.detailDict(((List) ((Result) result).getResult())); + ((Result) result).setResult(items); + } + } + } + +} diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamController.java index 79df2f8..5b8d49b 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamController.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamController.java @@ -45,15 +45,6 @@ return new ResponseResult(CommonCode.FAIL); } -// @AutoLog(value = "DNC鎸囨淳璁惧娴佺▼鎿嶄綔-鑾峰彇褰撳墠鐢ㄦ埛鐨勫緟鍔炲強鍙嬀鍙栫殑浠诲姟") -// @ApiOperation(value = "DNC鎸囨淳璁惧娴佺▼鎿嶄綔-鑾峰彇褰撳墠鐢ㄦ埛鐨勫緟鍔炲強鍙嬀鍙栫殑浠诲姟", notes = "DNC鎸囨淳璁惧娴佺▼鎿嶄綔-鑾峰彇褰撳墠鐢ㄦ埛鐨勫緟鍔炲強鍙嬀鍙栫殑浠诲姟") -// @GetMapping("/find/task/list") -// public Result<?> getUndoTaskList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, -// @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { -// IPage<ActTaskExt> actTaskExtIPage = assignFileStreamService.getUndoTaskList(pageNo,pageSize); -// return Result.ok(actTaskExtIPage); -// } - @AutoLog(value = "DNC鎸囨淳璁惧娴佺▼鎿嶄綔-鎵归噺鎸囨淳鍒拌澶�") @ApiOperation(value = "DNC鎸囨淳璁惧娴佺▼鎿嶄綔-鎵归噺鎸囨淳鍒拌澶�", notes = "DNC鎸囨淳璁惧娴佺▼鎿嶄綔-鎵归噺鎸囨淳鍒拌澶�") @PostMapping("/assign/file/batch/apply") diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamFlowController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamFlowController.java index a991f2d..c4f0052 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamFlowController.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/controller/AssignFileStreamFlowController.java @@ -10,10 +10,8 @@ import org.flowable.engine.*; import org.flowable.engine.history.HistoricActivityInstance; import org.flowable.image.ProcessDiagramGenerator; -import org.flowable.task.api.Task; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.vo.LoginUser; -import org.jeecg.modules.dncFlow.entity.HisWorkTask; import org.jeecg.modules.dncFlow.entity.WorkTaskData; import org.jeecg.modules.dncFlow.entity.WorkTaskDataVo; import org.jeecg.modules.dncFlow.service.IAssignFileStreamService; @@ -72,11 +70,20 @@ Page page = new Page(pageNo, pageSize); IPage<FlowMyBusinessDto> pageList = flowMyBusinessService.getPageList(page, flowMyBusinessDto); pageList.getRecords().forEach(item -> { - //鍘婚櫎[] - item.setTodoUsers(item.getTodoUsers().replaceAll("\\[", "").replaceAll("\\]", "")); - item.setTodoUsers(item.getTodoUsers().replaceAll("\"", "")); - item.setDoneUsers(item.getDoneUsers().replaceAll("\\[", "").replaceAll("\\]", "")); - item.setDoneUsers(item.getDoneUsers().replaceAll("\"", "")); + if (item.getTodoUsers() == null){ + item.setTodoUsers(""); + }else{ + //鍘婚櫎[] + item.setTodoUsers(item.getTodoUsers().replaceAll("\\[", "").replaceAll("\\]", "")); + item.setTodoUsers(item.getTodoUsers().replaceAll("\"", "")); + } + if (item.getDoneUsers() == null){ + item.setDoneUsers(""); + }else { + //鍘婚櫎[] + item.setDoneUsers(item.getDoneUsers().replaceAll("\\[", "").replaceAll("\\]", "")); + item.setDoneUsers(item.getDoneUsers().replaceAll("\"", "")); + } }); return Result.OK(pageList); } @@ -111,25 +118,26 @@ @ApiOperation(value = "鑾峰彇宸插姙浠诲姟", response = FlowTaskDto.class) @GetMapping(value = "/finishedList") - public Result finishedList(@ApiParam(value = "褰撳墠椤电爜", required = true) @RequestParam Integer pageNo, - @ApiParam(value = "姣忛〉鏉℃暟", required = true) @RequestParam Integer pageSize) { - return flowTaskService.finishedList(pageNo, pageSize); + public Result<?> finishedList(@ApiParam(value = "褰撳墠椤电爜", required = true) @RequestParam Integer pageNo, + @ApiParam(value = "姣忛〉鏉℃暟", required = true) @RequestParam Integer pageSize, + FlowMyBusinessDto flowMyBusinessDto) { + return flowTaskService.finishedList(pageNo, pageSize,flowMyBusinessDto); } @ApiOperation(value = "鑾峰彇宸ヤ綔娴佸巻鍙蹭换鍔�", response = FlowTaskDto.class) @GetMapping(value = "/queryHisTaskList") - public Result<List<HisWorkTask>> queryHisTaskList(@RequestParam(name = "drapprovedataId") String drapprovedataId) { + public Result<?> queryHisTaskList(@RequestParam(name = "drapprovedataId") String drapprovedataId) { return Result.OK(hisWorkTaskService.queryHisTaskList(drapprovedataId)); } @ApiOperation(value = "瀹℃壒浠诲姟-鏌ョ湅娴佺▼鍥�") @GetMapping("/diagramView") - public void showImages(@RequestParam(name = "taskId") String taskId, HttpServletResponse response) throws IOException { - Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); - String processDefinitionId = task.getProcessDefinitionId(); + public void showImages(@RequestParam(name = "processDefinitionId") String processDefinitionId, + @RequestParam(name = "processInstanceId") String processInstanceId, + @RequestParam(name = "TaskDefinitionKey") String TaskDefinitionKey, + HttpServletResponse response) throws IOException { BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId); - String processInstanceId = task.getProcessInstanceId(); List<HistoricActivityInstance> historyProcess = historyService.createHistoricActivityInstanceQuery() .processInstanceId(processInstanceId) .finished() @@ -146,7 +154,7 @@ activityIds.add(hi.getActivityId()); } } - activityIds.add(task.getTaskDefinitionKey()); + activityIds.add(TaskDefinitionKey); ProcessEngineConfiguration engConf = processEngine.getProcessEngineConfiguration(); ProcessDiagramGenerator processDiagramGenerator = engConf.getProcessDiagramGenerator(); diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/AssignFileStream.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/AssignFileStream.java index ec105d8..4f258ee 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/AssignFileStream.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/AssignFileStream.java @@ -27,6 +27,8 @@ private String processId; @TableField(value = "step_id") private String stepId; + @TableField(value = "device_type_id") + private String deviceTypeId; @TableField(value = "doc_id") private String docId; @TableField(value = "file_id") diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/HisWorkTask.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/HisWorkTask.java index 4bc94eb..4e9aa2d 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/HisWorkTask.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/HisWorkTask.java @@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import lombok.Data; +import org.jeecg.common.aspect.annotation.Dict; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; @@ -39,5 +40,6 @@ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private String endTime; + @Dict(dicCode = "dnc_assign_stream_status") private transient String status; } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskDataVo.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskDataVo.java index eb57e51..c52e8b6 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskDataVo.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/entity/WorkTaskDataVo.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; @@ -66,6 +68,23 @@ @ApiModelProperty(value = "娴佺▼鍚嶇О") private transient String flowName; + @ApiModelProperty(value = "娴佺▼绫诲瀷") + @Dict(dicCode = "flow_type") + private transient String category; + + /**娴佺▼瀹氫箟key 涓�涓猭ey浼氭湁澶氫釜鐗堟湰鐨刬d*/ + @Excel(name = "娴佺▼瀹氫箟key 涓�涓猭ey浼氭湁澶氫釜鐗堟湰鐨刬d", width = 15) + @ApiModelProperty(value = "娴佺▼瀹氫箟key 涓�涓猭ey浼氭湁澶氫釜鐗堟湰鐨刬d") + private String processDefinitionKey; + /**娴佺▼瀹氫箟id 涓�涓祦绋嬪畾涔夊敮涓�*/ + @Excel(name = "娴佺▼瀹氫箟id 涓�涓祦绋嬪畾涔夊敮涓�", width = 15) + @ApiModelProperty(value = "娴佺▼瀹氫箟id 涓�涓祦绋嬪畾涔夊敮涓�") + private String processDefinitionId; + /**娴佺▼涓氬姟瀹炰緥id 涓�涓祦绋嬩笟鍔″敮涓�锛屾湰琛ㄤ腑涔熷敮涓�*/ + @Excel(name = "娴佺▼涓氬姟瀹炰緥id 涓�涓祦绋嬩笟鍔″敮涓�锛屾湰琛ㄤ腑涔熷敮涓�", width = 15) + @ApiModelProperty(value = "娴佺▼涓氬姟瀹炰緥id 涓�涓祦绋嬩笟鍔″敮涓�锛屾湰琛ㄤ腑涔熷敮涓�") + private String processInstanceId; + // /**鏆傛椂鐢ㄤ笉涓�*/ // @TableField("task_def_id_") diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/ext/AssignFileStreamExt.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/ext/AssignFileStreamExt.java index c59cdb1..5681754 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/ext/AssignFileStreamExt.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/ext/AssignFileStreamExt.java @@ -18,4 +18,6 @@ private String approveUser; private String deviceName; private String docSuffix; + private String deviceManagementName; + private String deviceManagementCode; } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/AssignFileStreamMapper.xml b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/AssignFileStreamMapper.xml index 2dd41e9..b2322e1 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/AssignFileStreamMapper.xml +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/AssignFileStreamMapper.xml @@ -24,6 +24,8 @@ , pt.parts_name as partsName , ps.process_name as processName , wt.step_name as stepName + , dem.device_management_name as deviceManagementName + , dem.device_management_code as deviceManagementCode , dc.doc_name as docName , dc.publish_version as version , dc.doc_suffix as docSuffix @@ -47,7 +49,10 @@ on a.doc_id=dc.doc_id left join mdc_equipment de on a.device_id=de.id - + left join nc_device_type type + on a.device_type_id=type.id + left join nc_device_management dem + on type.device_management_id=dem.id </select> <select id="findByPage" resultType="org.jeecg.modules.dncFlow.ext.AssignFileStreamExt" parameterType="String"> diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskVoMapper.xml b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskVoMapper.xml index 4658443..1a23ed3 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskVoMapper.xml +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/mapper/xml/WorkTaskVoMapper.xml @@ -9,15 +9,19 @@ atask.proc_inst_id_ AS procInstId, atask.proc_def_id_ AS procDefId, atask.name_ AS name, - atask.task_def_key_ AS taskDefKey, - su.realname AS assignee, + atask.task_def_key_ as taskDefKey, + su.realname as assignee, atask.priority_ AS priority, atask.create_time_ AS createTime, atask.suspension_state_ AS suspensionState, fmb.act_status AS actStatus, fmb.title AS title, fmb.data_id AS dataId, - pro.name_ as flowName + fmb.process_definition_key AS processDefinitionKey, + fmb.process_definition_id AS processDefinitionId, + fmb.process_instance_id AS processInstanceId, + pro.name_ as flowName, + pro.CATEGORY_ as category FROM act_ru_task AS atask, flow_my_business AS fmb, @@ -40,6 +44,9 @@ <if test="flowMy.endTime!= null and flowMy.endTime!= ''"> AND atask.create_time_ <= #{flowMy.endTime} </if> + <if test="flowMy.category!= null and flowMy.category!= ''"> + AND pro.CATEGORY_ = #{flowMy.category} + </if> ORDER BY create_time_ DESC </select> diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java index df6ebb3..a3c1e93 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/service/impl/AssignFileStreamServiceImpl.java @@ -48,7 +48,6 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -91,15 +90,11 @@ @Autowired private ISynchronizedFlagService synchronizedFlagService; @Autowired - private IDeviceGroupService deviceGroupService; - @Autowired private IDeviceCharactersService iDeviceCharactersService; @Autowired private IMdcEquipmentService iMdcEquipmentService; @Autowired private IMdcProductionService iMdcProductionService; - @Autowired - private StringRedisTemplate redisTemplate; @Autowired private TaskService taskService; @Resource @@ -108,6 +103,8 @@ private IFlowDefinitionService flowDefinitionService; @Autowired private IFlowTaskService flowTaskService; + @Autowired + private IDeviceTypeService deviceTypeService; @Value("${securedoc.whether}") private String whether; @@ -192,15 +189,18 @@ DocInfo docInfo = getDocInfo(stream); MdcEquipment mdcEquipment = getMdcEquipment(stream); DocFile docFile = docFileService.getById(stream.getFileId()); - DocInfo deviceDoc = docInfoService.getByDocAttrAndDocId(stream.getDocId(), 4, stream.getDeviceId()); + DocInfo deviceDoc = docInfoService.getByDocAttrAndDocId(stream.getDocId(), 7, stream.getDeviceId()); if (deviceDoc != null) { handleExistingDeviceDoc(docFile, mdcEquipment, stream.getDeviceId()); } - deviceDoc = docInfoService.findByAttrAndDocName(docInfo.getDocName(), 4, stream.getDeviceId()); + deviceDoc = docInfoService.findByAttrAndDocName(docInfo.getDocName(), 7, stream.getDeviceId()); if (deviceDoc != null) { handleExistingDeviceDoc(docFile, mdcEquipment, stream.getDeviceId()); } PermissionStreamNew permissionStreams = getPermissionStreams(stream); + if (permissionStreams==null){ + return Result.error("鐢ㄦ埛娌℃湁鏉冮檺"); + } LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); saveBusinessObject(stream, userId); @@ -209,8 +209,19 @@ stream.getStreamId(), "IAssignFileStreamService", "assign_nc_to_device", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", stream.getStreamId()); - variables.put("organization", stream.getApplyReason()); - return flowDefinitionService.startProcessInstanceByKey("assign_nc_to_device", variables); + if (stream.getApplyReason() != null) { + variables.put("organization", stream.getApplyReason()); + }else { + variables.put("organization", ""); + } + Result result= flowDefinitionService.startProcessInstanceByKey("assign_nc_to_device", variables); + if (result.isSuccess()){ + return Result.OK("鎿嶄綔鎴愬姛"); + }else { + super.removeById(stream.getStreamId()); + + return Result.error("鎿嶄綔澶辫触"); + } } @Override @@ -221,7 +232,7 @@ DocInfo docInfo = getDocInfo(stream); MdcEquipment mdcEquipment = getMdcEquipment(stream); DocFile docFile = getDocFile(stream); - DocInfo deviceDoc = docInfoService.getByDocAttrAndDocId(stream.getDocId(), 4, stream.getDeviceId()); + DocInfo deviceDoc = docInfoService.getByDocAttrAndDocId(stream.getDocId(), 7, stream.getDeviceId()); if(deviceDoc != null) { // 鍒犻櫎 澶囦唤 瑕嗙洊 鍘熸湁鐨� List<String> strings=iMdcProductionService.findListParentTreeAll(mdcEquipment.getId()); @@ -231,16 +242,6 @@ docFile.getFileName(), docFile.getFileSuffix()); } } - /*deviceDoc = docInfoService.findByAttrAndDocName(docInfo.getDocName(), 4, stream.getDeviceId()); - if(deviceDoc != null) { - // 鍒犻櫎 澶囦唤 瑕嗙洊 鍘熸湁鐨� - List<String> strings = deviceGroupService.findListParentTreeAll(deviceInfo.getGroupId()); - if (strings != null && !strings.isEmpty()) { - String path = StringUtils.join(strings.toArray(), "/"); - boolean copyFileNc = FileUtilS.copyFileNcToBak(path + "/"+ deviceInfo.getDeviceNo(), - docFile.getFileName(), docFile.getFileSuffix()); - } - }*/ getPermissionStreams(stream); //鎻掑叆鏂囨。鍒拌澶囧彂閫佹枃妗� if(deviceDoc == null) { @@ -250,7 +251,7 @@ DocRelative docRelative = new DocRelative(); docRelative.setDocId(docInfo.getDocId()); docRelative.setClassificationId(classification.getClassificationId()); - docRelative.setAttributionType(4); + docRelative.setAttributionType(7); docRelative.setAttributionId(stream.getDeviceId()); boolean b = docRelativeService.save(docRelative); if(!b) { @@ -303,20 +304,20 @@ DocInfo docInfo; //鍚屾剰鎿嶄綔 if (StrUtil.isNotEmpty(en.getStepId())){ - //宸ユ鎸囨淳 - docInfo = docInfoService.getByDocAttrAndDocId(en.getDocId(), 6, en.getStepId()); + //宸ユ涓嬭澶囩被鎸囨淳 + docInfo = docInfoService.getByDocAttrAndDocId(en.getDocId(), 6, en.getDeviceTypeId()); }else { - docInfo = docInfoService.getByDocAttrAndDocId(en.getDocId(), 5, en.getProcessId()); + docInfo = docInfoService.getByDocAttrAndDocId(en.getDocId(), 5, en.getDeviceTypeId()); } if(docInfo == null || docInfo.getDocStatus() == 3) - ExceptionCast.cast(ActivitiCode.ACT_DOC_ERROR); + ExceptionCast.cast(ActivitiCode.ACT_DOC_ERROR); MdcEquipment mdcEquipment = iMdcEquipmentService.getById(en.getDeviceId()); if(mdcEquipment == null) ExceptionCast.cast(ActivitiCode.ACT_ASSIGN_DEVICE_NONE); DocFile docFile = docFileService.getById(en.getFileId()); if(docFile == null) ExceptionCast.cast(ActivitiCode.ACT_FILE_ERROR); - DocInfo deviceDoc = docInfoService.getByDocAttrAndDocId(en.getDocId(),4, en.getDeviceId()); + DocInfo deviceDoc = docInfoService.getByDocAttrAndDocId(en.getDocId(),7, en.getDeviceId()); if(deviceDoc != null) { // 鍒犻櫎 澶囦唤 瑕嗙洊 鍘熸湁鐨� List<String> strings = iMdcProductionService.findListParentTreeAll(mdcEquipment.getId()); @@ -325,7 +326,7 @@ boolean copyFileNc = FileUtilS.copyFileNcToBak(path + "/"+ mdcEquipment.getEquipmentId(), docFile.getFileName(), docFile.getFileSuffix()); /* //docInfoService.getBaseMapper().deleteById(deviceDoc.getDocId()); - boolean doc = docRelativeService.deleteCopyDocByAttrNext(deviceDoc.getDocId(),4,stream.getDeviceId()); + boolean doc = docRelativeService.deleteCopyDocByAttrNext(deviceDoc.getDocId(),7,stream.getDeviceId()); if (!doc) { ExceptionCast.cast(ActivitiCode.ACT_DOC_ERROR_DELEVE); }*/ @@ -339,7 +340,7 @@ DocRelative docRelative = new DocRelative(); docRelative.setDocId(docInfo.getDocId()); docRelative.setClassificationId(classification.getClassificationId()); - docRelative.setAttributionType(4); + docRelative.setAttributionType(7); docRelative.setAttributionId(en.getDeviceId()); b = docRelativeService.save(docRelative); } @@ -471,7 +472,7 @@ if(deviceInfo == null) ExceptionCast.cast(DeviceCode.DEVICE_NOT_EXIST); //鍒犻櫎鍘熸潵璁惧涓嬬殑鎵�鏈夋枃妗� - docRelativeService.deleteByDocAttr(4, deviceInfo.getDeviceId()); + docRelativeService.deleteByDocAttr(7, deviceInfo.getDeviceId()); List<DocInfo> docInfoList = docInfoService.getByProcessIds(streams); if(docInfoList == null || docInfoList.isEmpty()) ExceptionCast.cast(DocumentCode.DOC_NOT_EXIST); @@ -490,7 +491,7 @@ DocRelative docRelative = new DocRelative(); docRelative.setDocId(docInfo.getDocId()); docRelative.setClassificationId(classification.getClassificationId()); - docRelative.setAttributionType(4); + docRelative.setAttributionType(7); docRelative.setAttributionId(deviceInfo.getDeviceId()); boolean b = docRelativeService.save(docRelative); if(!b) @@ -559,8 +560,8 @@ if (!copyFileNc) { ExceptionCast.cast(ActivitiCode.ACT_FILE_ERROR); } else { - DocInfo deviceDoc = docInfoService.getByDocAttrAndDocId(deviceId, 4, deviceId); - boolean doc = docRelativeService.deleteDocByAttr(deviceDoc.getDocId(), 4, deviceId); + DocInfo deviceDoc = docInfoService.getByDocAttrAndDocId(deviceId, 7, deviceId); + boolean doc = docRelativeService.deleteDocByAttr(deviceDoc.getDocId(), 7, deviceId); if (!doc) { ExceptionCast.cast(ActivitiCode.ACT_DOC_ERROR_DELEVE); } @@ -568,40 +569,56 @@ } } - //鏉冮檺鏍¢獙 private PermissionStreamNew getPermissionStreams(AssignFileStream stream) { - PermissionStreamNew permissionStreams; LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + DeviceType deviceType = deviceTypeService.getById(stream.getAttributionId()); + String attributionId = deviceType != null ? deviceType.getAttributionId() : stream.getAttributionId(); + + PermissionStreamNew permissionStreams; if (stream.getAttributionType().equals("5")) { // 宸ュ簭 - ProcessStream processStream = processStreamService.getById(stream.getAttributionId()); - if (processStream == null) { - ExceptionCast.cast(CommonCode.INVALID_PARAM); - } - stream.setProductId(processStream.getProductId()); - stream.setComponentId(processStream.getComponentId()); - stream.setPartsId(processStream.getPartsId()); - stream.setProcessId(processStream.getProcessId()); - permissionStreams = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(processStream.getProcessId(),user.getId(),"5"); + permissionStreams = handleProcess(stream, attributionId, user); } else { // 宸ユ - WorkStep workStep = workStepService.getById(stream.getAttributionId()); - if (workStep == null) { - ExceptionCast.cast(CommonCode.INVALID_PARAM); - } - stream.setProductId(workStep.getProductId()); - stream.setComponentId(workStep.getComponentId()); - stream.setPartsId(workStep.getPartsId()); - stream.setProcessId(workStep.getProcessId()); - stream.setStepId(workStep.getId()); - permissionStreams = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(workStep.getId(),user.getId(),"6"); + permissionStreams = handleWorkStep(stream, attributionId, user); } - if (permissionStreams == null ) { + if (permissionStreams == null) { ExceptionCast.cast(ActivitiCode.ACT_NODE_DEPART_NONE); } return permissionStreams; } + private PermissionStreamNew handleProcess(AssignFileStream stream, String attributionId, LoginUser user) { + ProcessStream processStream = processStreamService.getById(attributionId); + if (processStream == null) { + ExceptionCast.cast(CommonCode.INVALID_PARAM); + } + stream.setProductId(processStream.getProductId()); + stream.setComponentId(processStream.getComponentId()); + stream.setPartsId(processStream.getPartsId()); + stream.setProcessId(processStream.getProcessId()); + if (deviceTypeService.getById(stream.getAttributionId()) != null) { + stream.setDeviceTypeId(deviceTypeService.getById(stream.getAttributionId()).getId()); + } + return permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(processStream.getProcessId(), user.getId(), "5"); + } + + private PermissionStreamNew handleWorkStep(AssignFileStream stream, String attributionId, LoginUser user) { + WorkStep workStep = workStepService.getById(attributionId); + if (workStep == null) { + ExceptionCast.cast(CommonCode.INVALID_PARAM); + } + stream.setProductId(workStep.getProductId()); + stream.setComponentId(workStep.getComponentId()); + stream.setPartsId(workStep.getPartsId()); + stream.setProcessId(workStep.getProcessId()); + stream.setStepId(workStep.getId()); + if (deviceTypeService.getById(stream.getAttributionId()) != null) { + stream.setDeviceTypeId(deviceTypeService.getById(stream.getAttributionId()).getId()); + } + return permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(workStep.getId(), user.getId(), "6"); + } + //鑾峰彇閮ㄩ棬淇℃伅 //todo 淇敼 private List<String> getDepartIds(List<PermissionStream> permissionStreams, String userId) { diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/FlowMy.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/FlowMy.java index da94872..0326124 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/FlowMy.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dncFlow/vo/FlowMy.java @@ -30,4 +30,8 @@ * 缁撴潫鏃堕棿 */ private String endTime; + /** + * 娴佺▼鍒嗙被 + */ + private String category; } diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/dto/FlowMyBusinessDto.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/dto/FlowMyBusinessDto.java index a15c0b1..a4cd3b5 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/dto/FlowMyBusinessDto.java +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/dto/FlowMyBusinessDto.java @@ -64,6 +64,9 @@ @Excel(name = "娴佺▼涓氬姟瀹炰緥id 涓�涓祦绋嬩笟鍔″敮涓�锛屾湰琛ㄤ腑涔熷敮涓�", width = 15) @ApiModelProperty(value = "娴佺▼涓氬姟瀹炰緥id 涓�涓祦绋嬩笟鍔″敮涓�锛屾湰琛ㄤ腑涔熷敮涓�") private String processInstanceId; + @ApiModelProperty(value = "娴佺▼绫诲瀷") + @Dict(dicCode = "flow_type") + private String category; /**娴佺▼涓氬姟绠�瑕佹弿杩�*/ @Excel(name = "娴佺▼涓氬姟绠�瑕佹弿杩�", width = 15) @ApiModelProperty(value = "娴佺▼涓氬姟绠�瑕佹弿杩�") @@ -119,11 +122,17 @@ @TableField(exist = false) private String taskStatus; + @ApiModelProperty("鍘嗗彶娴佺▼瀹炰緥ID") + private transient String hisProcInsId; + private transient String flowName; /**娴佺▼寮�濮嬫椂闂�*/ - private transient Date startTime; + private transient String startTime; /**娴佺▼缁撴潫鏃堕棿*/ - private transient Date endTime; + private transient String endTime; + + /**褰撳墠鐢ㄦ埛*/ + private transient String currentUser; } diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java index 6922fac..78a07d1 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/FlowMyBusinessMapper.java @@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Param; import org.jeecg.modules.flowable.apithird.business.dto.FlowMyBusinessDto; import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; +import org.jeecg.modules.flowable.domain.dto.FlowTaskDto; /** * @Description: 娴佺▼涓氬姟鎵╁睍琛� @@ -14,6 +15,13 @@ * @Version: V1.0 */ public interface FlowMyBusinessMapper extends BaseMapper<FlowMyBusiness> { + /** + * 娴佺▼-鎴戠殑宸插姙 + * @param flowMyBusinessDto + * @param page + * @return + */ + IPage<FlowTaskDto> PageListMyBusiness(@Param("page")Page page, @Param("flowMyBusinessDto") FlowMyBusinessDto flowMyBusinessDto); /** * 娴佺▼鎬诲彴璐� diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml index 221ab77..27b7a5e 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/mapper/xml/FlowMyBusinessMapper.xml @@ -6,16 +6,74 @@ flow_my_business.*, ACT_HI_PROCINST.START_TIME_ as start_time, ACT_HI_PROCINST.END_TIME_ as end_time, - NC_ASSIGN_FILE_STREAM.STATUS as status, - ACT_RE_PROCDEF.NAME_ as flowName + ACT_RE_PROCDEF.NAME_ as flowName, + ACT_RE_PROCDEF.CATEGORY_ as category FROM flow_my_business LEFT JOIN ACT_HI_PROCINST ON flow_my_business.process_instance_id = ACT_HI_PROCINST.ID_ LEFT JOIN ACT_RE_PROCDEF ON flow_my_business.process_definition_id = ACT_RE_PROCDEF.ID_ - LEFT JOIN NC_ASSIGN_FILE_STREAM ON flow_my_business.data_id = NC_ASSIGN_FILE_STREAM.STREAM_ID where 1 = 1 + <if test="flowMyBusinessDto.category != null and flowMyBusinessDto.category != ''"> + and ACT_RE_PROCDEF.CATEGORY_ = #{flowMyBusinessDto.category} + </if> + <if test="flowMyBusinessDto.flowName!= null and flowMyBusinessDto.flowName!= ''"> + AND ACT_RE_PROCDEF.name_ LIKE CONCAT('%',#{flowMyBusinessDto.flowName},'%') + </if> + <if test="flowMyBusinessDto.title != null and flowMyBusinessDto.title != ''"> + AND flow_my_business.title LIKE CONCAT('%',#{flowMyBusinessDto.title},'%') + </if> + <if test="flowMyBusinessDto.startTime!= null and flowMyBusinessDto.startTime!= ''"> + AND ACT_HI_PROCINST.START_TIME_ >= #{flowMyBusinessDto.startTime} + </if> + <if test="flowMyBusinessDto.endTime!= null and flowMyBusinessDto.endTime!= ''"> + AND ACT_HI_PROCINST.END_TIME_ <= #{flowMyBusinessDto.endTime} + </if> ORDER BY flow_my_business.create_time desc </select> + <select id="PageListMyBusiness" resultType="org.jeecg.modules.flowable.domain.dto.FlowTaskDto"> + SELECT + task.ID_ as 'hisProcInsId', + TASK.PROC_INST_ID_ AS 'taskId', + ACT_RE_PROCDEF.CATEGORY_ AS 'category', + ACT_RE_PROCDEF.NAME_ 'procDefName', + flow_my_business.title AS 'Description', + flow_my_business.data_id AS 'dataId', + flow_my_business.process_definition_key AS 'processDefinitionKey', + flow_my_business.process_definition_id AS 'processDefinitionId', + flow_my_business.process_instance_id AS 'processInstanceId', + TASK.EXECUTION_ID_ AS 'executionId', + task.NAME_ AS 'taskName', + task.DURATION_ 'duration', + task.START_TIME_ AS 'createTime', + task.END_TIME_ AS 'finishTime', + task.TASK_DEF_KEY_ AS 'TaskDefKey' + FROM + ACT_HI_TASKINST TASK + LEFT JOIN flow_my_business ON flow_my_business.process_instance_id = TASK.PROC_INST_ID_ + LEFT JOIN ACT_RE_PROCDEF ON flow_my_business.process_definition_id = ACT_RE_PROCDEF.ID_ + WHERE + TASK.END_TIME_ IS NOT NULL + <if test="flowMyBusinessDto.currentUser != null and flowMyBusinessDto.currentUser != ''"> + AND TASK.ASSIGNEE_ = #{flowMyBusinessDto.currentUser} + </if> + <if test="flowMyBusinessDto.category != null and flowMyBusinessDto.category != ''"> + and ACT_RE_PROCDEF.CATEGORY_ = #{flowMyBusinessDto.category} + </if> + <if test="flowMyBusinessDto.flowName!= null and flowMyBusinessDto.flowName!= ''"> + AND ACT_RE_PROCDEF.name_ LIKE CONCAT('%',#{flowMyBusinessDto.flowName},'%') + </if> + <if test="flowMyBusinessDto.title != null and flowMyBusinessDto.title != ''"> + AND flow_my_business.title LIKE CONCAT('%',#{flowMyBusinessDto.title},'%') + </if> + <if test="flowMyBusinessDto.startTime!= null and flowMyBusinessDto.startTime!= ''"> + AND TASK.START_TIME_ >= #{flowMyBusinessDto.startTime} + </if> + <if test="flowMyBusinessDto.endTime!= null and flowMyBusinessDto.endTime!= ''"> + AND TASK.END_TIME_ <= #{flowMyBusinessDto.endTime} + </if> + ORDER BY + TASK.END_TIME_ DESC + </select> </mapper> diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java index 3ad18b5..b1bf9e6 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/apithird/business/service/impl/FlowMyBusinessServiceImpl.java @@ -8,6 +8,7 @@ import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; import org.jeecg.modules.flowable.apithird.business.mapper.FlowMyBusinessMapper; import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; +import org.jeecg.modules.flowable.domain.dto.FlowTaskDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -40,6 +41,17 @@ FlowMyBusiness business = this.getOne(flowMyBusinessLambdaQueryWrapper); return business; } + + /** + * 娴佺▼-鎴戠殑宸插姙 + * @param flowMyBusinessDto + * @param page + * @return + */ + public IPage<FlowTaskDto> getPageListMyBusiness(Page page, FlowMyBusinessDto flowMyBusinessDto){ + return flowMyBusinessMapper.PageListMyBusiness(page,flowMyBusinessDto); + } + /** * 娴佺▼鎬诲彴璐� * @param flowMyBusinessDto diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/FlowTaskController.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/FlowTaskController.java index 0de7455..f747af6 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/FlowTaskController.java +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/controller/FlowTaskController.java @@ -57,14 +57,6 @@ return flowTaskService.todoList(pageNum, pageSize); } - @ApiOperation(value = "鑾峰彇宸插姙浠诲姟", response = FlowTaskDto.class) - @GetMapping(value = "/finishedList") - public Result finishedList(@ApiParam(value = "褰撳墠椤电爜", required = true) @RequestParam Integer pageNum, - @ApiParam(value = "姣忛〉鏉℃暟", required = true) @RequestParam Integer pageSize) { - return flowTaskService.finishedList(pageNum, pageSize); - } - - @ApiOperation(value = "娴佺▼鍘嗗彶娴佽浆璁板綍", response = FlowTaskDto.class) @GetMapping(value = "/flowRecord") public Result flowRecord(String dataId) { diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/dto/FlowTaskDto.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/dto/FlowTaskDto.java index 4fdec9a..4fc8beb 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/dto/FlowTaskDto.java +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/domain/dto/FlowTaskDto.java @@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecgframework.poi.excel.annotation.Excel; import java.io.Serializable; import java.util.Date; @@ -49,6 +51,7 @@ private String startUserName; @ApiModelProperty("娴佺▼绫诲瀷") + @Dict(dicCode = "flow_type") private String category; @ApiModelProperty("娴佺▼鍙橀噺淇℃伅") @@ -87,6 +90,9 @@ @ApiModelProperty("鍊欓�夋墽琛屼汉") private String candidate; + @ApiModelProperty("涓氬姟琛╥d锛岀悊璁哄敮涓�") + private String dataId; + @ApiModelProperty("浠诲姟鍒涘缓鏃堕棿") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @@ -95,4 +101,17 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date finishTime; + /**娴佺▼瀹氫箟key 涓�涓猭ey浼氭湁澶氫釜鐗堟湰鐨刬d*/ + @Excel(name = "娴佺▼瀹氫箟key 涓�涓猭ey浼氭湁澶氫釜鐗堟湰鐨刬d", width = 15) + @ApiModelProperty(value = "娴佺▼瀹氫箟key 涓�涓猭ey浼氭湁澶氫釜鐗堟湰鐨刬d") + private String processDefinitionKey; + /**娴佺▼瀹氫箟id 涓�涓祦绋嬪畾涔夊敮涓�*/ + @Excel(name = "娴佺▼瀹氫箟id 涓�涓祦绋嬪畾涔夊敮涓�", width = 15) + @ApiModelProperty(value = "娴佺▼瀹氫箟id 涓�涓祦绋嬪畾涔夊敮涓�") + private String processDefinitionId; + /**娴佺▼涓氬姟瀹炰緥id 涓�涓祦绋嬩笟鍔″敮涓�锛屾湰琛ㄤ腑涔熷敮涓�*/ + @Excel(name = "娴佺▼涓氬姟瀹炰緥id 涓�涓祦绋嬩笟鍔″敮涓�锛屾湰琛ㄤ腑涔熷敮涓�", width = 15) + @ApiModelProperty(value = "娴佺▼涓氬姟瀹炰緥id 涓�涓祦绋嬩笟鍔″敮涓�锛屾湰琛ㄤ腑涔熷敮涓�") + private String processInstanceId; + } diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IFlowTaskService.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IFlowTaskService.java index 71749a5..52766d2 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IFlowTaskService.java +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/IFlowTaskService.java @@ -2,6 +2,7 @@ import org.flowable.task.api.Task; import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.flowable.apithird.business.dto.FlowMyBusinessDto; import org.jeecg.modules.flowable.domain.dto.FlowViewerDto; import org.jeecg.modules.flowable.domain.vo.FlowTaskVo; @@ -18,6 +19,7 @@ * @param task 璇锋眰瀹炰綋鍙傛暟 */ Result complete(FlowTaskVo task); + Result completeByDateId(FlowTaskVo flowTaskVo); /** * 椹冲洖浠诲姟 @@ -119,12 +121,12 @@ * @param pageSize 姣忛〉鏉℃暟 * @return */ - Result finishedList(Integer pageNum, Integer pageSize); + Result finishedList(Integer pageNum, Integer pageSize,FlowMyBusinessDto flowMyBusinessDto); /** * 娴佺▼鍘嗗彶娴佽浆璁板綍 * - * @param procInsId 娴佺▼瀹炰緥Id + * @param dataId 娴佺▼瀹炰緥Id * @return */ Result flowRecord(String dataId); diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java index b2d0ca1..2bb58bd 100644 --- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java +++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; @@ -32,10 +33,10 @@ import org.flowable.task.api.Task; import org.flowable.task.api.TaskQuery; import org.flowable.task.api.history.HistoricTaskInstance; -import org.flowable.task.api.history.HistoricTaskInstanceQuery; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.modules.flowable.apithird.business.dto.FlowMyBusinessDto; 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.common.constant.ProcessConstants; @@ -969,58 +970,32 @@ * @return */ @Override - public Result finishedList(Integer pageNum, Integer pageSize) { - Page<FlowTaskDto> page = new Page<>(); + public Result finishedList(Integer pageNum, Integer pageSize, FlowMyBusinessDto flowMyBusinessDto) { + //淇敼鏌ヨ锛屾坊鍔犳煡璇㈡潯浠� + Page page = new Page(pageNum, pageSize); String username = iFlowThirdService.getLoginUser().getUsername(); - HistoricTaskInstanceQuery taskInstanceQuery = historyService.createHistoricTaskInstanceQuery() - .includeProcessVariables() - .finished() - .taskAssignee(username) - .orderByHistoricTaskInstanceEndTime() - .desc(); - List<HistoricTaskInstance> historicTaskInstanceList = taskInstanceQuery.listPage((pageNum - 1)*pageSize, pageSize); - List<FlowTaskDto> hisTaskList = Lists.newArrayList(); - for (HistoricTaskInstance histTask : historicTaskInstanceList) { - FlowTaskDto flowTask = new FlowTaskDto(); - // 褰撳墠娴佺▼淇℃伅 - flowTask.setTaskId(histTask.getId()); - // 瀹℃壒浜哄憳淇℃伅 - flowTask.setCreateTime(histTask.getCreateTime()); - flowTask.setFinishTime(histTask.getEndTime()); - flowTask.setDuration(getDate(histTask.getDurationInMillis())); - flowTask.setProcDefId(histTask.getProcessDefinitionId()); - flowTask.setTaskDefKey(histTask.getTaskDefinitionKey()); - flowTask.setTaskName(histTask.getName()); - FlowMyBusiness flowMyBusiness = flowMyBusinessService.getByProcessInstanceId(histTask.getProcessInstanceId()); - if (flowMyBusiness != null) { - flowTask.setDescription(flowMyBusiness.getTitle()); - } + flowMyBusinessDto.setCurrentUser(username); + IPage<FlowTaskDto> flowTaskDtoIPage = flowMyBusinessService.getPageListMyBusiness(page,flowMyBusinessDto); + flowTaskDtoIPage.getRecords().forEach(flowTaskDto -> { // 娴佺▼瀹氫箟淇℃伅 ProcessDefinition pd = repositoryService.createProcessDefinitionQuery() - .processDefinitionId(histTask.getProcessDefinitionId()) + .processDefinitionId(flowTaskDto.getProcessDefinitionId()) .singleResult(); - flowTask.setDeployId(pd.getDeploymentId()); - flowTask.setProcDefName(pd.getName()); - flowTask.setProcDefVersion(pd.getVersion()); - flowTask.setProcInsId(histTask.getProcessInstanceId()); - flowTask.setHisProcInsId(histTask.getProcessInstanceId()); - + flowTaskDto.setDeployId(pd.getDeploymentId()); + flowTaskDto.setProcDefName(pd.getName()); + flowTaskDto.setProcDefVersion(pd.getVersion()); + flowTaskDto.setCategory(pd.getCategory()); // 娴佺▼鍙戣捣浜轰俊鎭� HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery() - .processInstanceId(histTask.getProcessInstanceId()) + .processInstanceId(flowTaskDto.getTaskId()) .singleResult(); SysUser startUser = iFlowThirdService.getUserByUsername(historicProcessInstance.getStartUserId()); - flowTask.setStartUserId(startUser.getUsername()); - flowTask.setStartUserName(startUser.getRealname()); + flowTaskDto.setStartUserId(startUser.getUsername()); + flowTaskDto.setStartUserName(startUser.getRealname()); List<String> departNamesByUsername = iFlowThirdService.getDepartNamesByUsername(historicProcessInstance.getStartUserId()); - flowTask.setStartDeptName(CollUtil.join(departNamesByUsername,"锛�")); - hisTaskList.add(flowTask); - } - page.setTotal(hisTaskList.size()); - page.setRecords(hisTaskList); -// Map<String, Object> result = new HashMap<>(); -// result.put("result",page); -// result.put("finished",true); + flowTaskDto.setStartDeptName(CollUtil.join(departNamesByUsername,"锛�")); + flowTaskDto.setTaskId(flowTaskDto.getHisProcInsId()); + }); return Result.OK(page); } -- Gitblit v1.9.3