Jelajahi Sumber

物资-用户选择独立封装,细节调整

huangguoce 5 jam lalu
induk
melakukan
acd3313c89

+ 7 - 0
jeeplus-modules/jeeplus-psi-management/src/main/java/com/jeeplus/psimanage/collect/controller/PsiCollectController.java

@@ -14,6 +14,7 @@ import com.jeeplus.psimanage.collect.service.PsiCollectService;
 import com.jeeplus.psimanage.collect.service.dto.PsiCollectDto;
 import com.jeeplus.psimanage.collect.service.dto.PsiCollectExportDto;
 import com.jeeplus.psimanage.collect.service.dto.PsiWareHouseSummaryDto;
+import com.jeeplus.psimanage.collect.service.dto.TreeUserDto;
 import com.jeeplus.utils.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -247,4 +248,10 @@ public class PsiCollectController {
         return ResponseEntity.ok(hi);
     }
 
+    @ApiOperation(value = "用户树形")
+    @GetMapping(value = "/userTree")
+    public ResponseEntity<List<TreeUserDto>> userTree(@RequestParam String name) {
+        List<TreeUserDto> list = psiCollectService.userTree(name);
+        return ResponseEntity.ok(list);
+    }
 }

+ 9 - 0
jeeplus-modules/jeeplus-psi-management/src/main/java/com/jeeplus/psimanage/collect/mapper/PsiCollectBasicMapper.java

@@ -1,5 +1,6 @@
 package com.jeeplus.psimanage.collect.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -9,6 +10,7 @@ import com.jeeplus.psimanage.collect.domain.PsiCollectBasic;
 import com.jeeplus.psimanage.collect.domain.PsiCollectBasicsReturn;
 import com.jeeplus.psimanage.collect.service.dto.PsiCollectDto;
 import com.jeeplus.psimanage.collect.service.dto.PsiWareHouseSummaryDto;
+import com.jeeplus.psimanage.collect.service.dto.TreeUserDto;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -37,5 +39,12 @@ public interface PsiCollectBasicMapper extends BaseMapper<PsiCollectBasic> {
      */
     void setCauseEmptyById(String id);
 
+    @InterceptorIgnore(tenantLine = "true")
+    List<TreeUserDto> findOfficeListByTenantId(String tenantId);
+
+    @InterceptorIgnore(tenantLine = "true")
+    List<TreeUserDto> findJxcUserList( @Param("name")String name);
+
     String getOfficeNameByOfficeId(String handledByOffice);
+
 }

+ 26 - 0
jeeplus-modules/jeeplus-psi-management/src/main/java/com/jeeplus/psimanage/collect/mapper/xml/PsiCollectBasicMapper.xml

@@ -69,4 +69,30 @@
 	<update id="setCauseEmptyById">
 		update psi_management_collect_basics_return set remarks = null where id = #{id}
 	</update>
+
+	<select id="findJxcUserList" resultType="com.jeeplus.psimanage.collect.service.dto.TreeUserDto">
+		SELECT
+		a.id,
+		a.`name`,
+		a.office_id AS parent_id,
+		b.`name` AS office_name,
+		true AS is_user
+		FROM
+		sys_user a
+		LEFT JOIN sys_office b ON a.office_id = b.id
+		WHERE
+		a.del_flag = 0 and a.is_admin is null and a.login_flag = 1 and a.tenant_id = '10009'
+		<if test="name != null and name != ''">
+			and a.`name` LIKE CONCAT ('%', #{name}, '%')
+		</if>
+	</select>
+
+	<select id="findOfficeListByTenantId" resultType="com.jeeplus.psimanage.collect.service.dto.TreeUserDto">
+		SELECT id,`name`,parent_id FROM sys_office WHERE del_flag = 0 and tenant_id = #{tenantId}
+	</select>
+
+
+
+
+
 </mapper>

+ 77 - 0
jeeplus-modules/jeeplus-psi-management/src/main/java/com/jeeplus/psimanage/collect/service/PsiCollectService.java

@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.collect.Lists;
 import com.jeeplus.common.TokenProvider;
 import com.jeeplus.core.query.QueryWrapperGenerator;
 import com.jeeplus.flowable.feign.IFlowableApi;
@@ -19,6 +20,7 @@ import com.jeeplus.psimanage.collect.mapper.*;
 import com.jeeplus.psimanage.collect.service.dto.PsiCollectDto;
 import com.jeeplus.psimanage.collect.service.dto.PsiCollectExportDto;
 import com.jeeplus.psimanage.collect.service.dto.PsiWareHouseSummaryDto;
+import com.jeeplus.psimanage.collect.service.dto.TreeUserDto;
 import com.jeeplus.psimanage.psiWareHouse.domain.PsiWareHouseDetailed;
 import com.jeeplus.psimanage.psiWareHouse.service.PsiWareHouseBasicService;
 import com.jeeplus.psimanage.purchase.service.PsiMaterialService;
@@ -29,8 +31,10 @@ import com.jeeplus.psimanage.psiWareHouse.service.dto.PsiWareHouseDto;
 import com.jeeplus.psimanage.oss.service.dto.WorkAttachmentDto;
 import com.jeeplus.psimanage.serialNumTpl.service.PsiSerialnumTplService;
 import com.jeeplus.sys.feign.IDictApi;
+import com.jeeplus.sys.feign.IRoleApi;
 import com.jeeplus.sys.feign.IUserApi;
 import com.jeeplus.sys.feign.IWorkAttachmentApi;
+import com.jeeplus.sys.service.dto.RoleDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.utils.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -1053,4 +1057,77 @@ public class PsiCollectService {
         }
         return psiCollectDto;
     }
+
+
+    //用户树形
+    public List<TreeUserDto> userTree(String name) {
+        List<TreeUserDto> list = new ArrayList<>();
+        List<TreeUserDto> filterList = new ArrayList<>();
+        List<TreeUserDto> officeList1 =  basicMapper.findOfficeListByTenantId("10009");
+        filterList.addAll(officeList1);
+        List<TreeUserDto> offices = Lists.newArrayList();
+        ArrayList<TreeUserDto> treeUserDtos = new ArrayList<>();
+        //查询物资公司所有用户信息
+        List<TreeUserDto> UserList=basicMapper.findJxcUserList(name);
+        treeUserDtos.addAll(UserList);
+        list = disposeUserTree(treeUserDtos, filterList);
+        for (TreeUserDto officeDto : officeList1) {
+            if("0".equals(officeDto.getParentId())){
+                list.add(officeDto);
+            }
+        }
+        for (TreeUserDto officeDto : offices) {
+            if("0".equals(officeDto.getParentId())){
+                list.add(officeDto);
+            }
+        }
+        //去重
+        List<TreeUserDto> newList = list.stream().collect(Collectors.collectingAndThen(
+                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TreeUserDto::getId))), ArrayList::new)
+        );
+        return newList;
+    }
+
+    /**
+     * 用户树形数据处理
+     * @param userList
+     * @param officeList
+     * @return
+     */
+    public List<TreeUserDto> disposeUserTree(List<TreeUserDto> userList, List<TreeUserDto> officeList){
+        List<TreeUserDto> list = new ArrayList<>();
+        for (TreeUserDto userDto : userList) {
+
+            for (TreeUserDto officeDto : officeList) {
+                if(org.apache.commons.lang3.StringUtils.isNotBlank(userDto.getParentId()) && userDto.getParentId().equals(officeDto.getId())){
+                    list.add(officeDto);
+                    list.add(userDto);
+                    List<TreeUserDto> treeUserDtos = disposeOfficeTree(officeDto, officeList);
+                    if(null!= treeUserDtos && treeUserDtos.size()>0){
+                        list.addAll(treeUserDtos);
+                    }
+                }
+            }
+        }
+        return list;
+    }
+
+
+    /**
+     * 用户树形数据处理
+     * @param officeInfo
+     * @param officeList
+     * @return
+     */
+    public List<TreeUserDto> disposeOfficeTree(TreeUserDto officeInfo, List<TreeUserDto> officeList){
+        List<TreeUserDto> listAll = Lists.newArrayList();
+        for (TreeUserDto officeDto : officeList) {
+            if(officeInfo.getParentId().equals(officeDto.getId())){
+                listAll.add(officeDto);
+                disposeOfficeTree(officeDto,officeList);
+            }
+        }
+        return listAll;
+    }
+
 }

+ 19 - 0
jeeplus-modules/jeeplus-psi-management/src/main/java/com/jeeplus/psimanage/collect/service/dto/TreeUserDto.java

@@ -0,0 +1,19 @@
+package com.jeeplus.psimanage.collect.service.dto;
+
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+public class TreeUserDto extends BaseEntity {
+
+    private String name;
+
+    private String parentId;
+
+    private String officeName;
+
+    private Boolean disable = false;
+
+    private Boolean isUser = false;
+
+}

+ 1 - 1
jeeplus-modules/jeeplus-psi-management/src/main/java/com/jeeplus/psimanage/loss/mapper/xml/PsiLossBasicMapper.xml

@@ -33,7 +33,7 @@
             art.ID_ AS task_id
         FROM psi_management_loss_basics a
         LEFT JOIN sys_user su ON a.handled_by = su.id
-        LEFT JOIN sys_office so ON a.handled_by_office = so.id
+        LEFT JOIN sys_office so ON su.office_id = so.id
         LEFT JOIN psi_management_loss_detailed b ON a.id = b.basic_id AND b.del_flag = '0'
         LEFT JOIN act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
         ${ew.customSqlSegment}

+ 16 - 1
jeeplus-modules/jeeplus-psi-management/src/main/java/com/jeeplus/psimanage/psiWareHouse/mapper/xml/PsiWareHouseBasicMapper.xml

@@ -89,7 +89,9 @@
 			a.produce_date,
 			a.shelf_life,
 			a.shelf_life_unit,
-			a.spec
+			a.spec,
+			pmcdra.returned_num as returnedNum,
+			pmcdra.not_surplus_stock as notSurplusStock
 		FROM
 			psi_management_warehouse_detailed a
 			left join
@@ -116,6 +118,18 @@
 				GROUP BY e.goods_name
 			) loss
 			on a.trade_name = loss.goods_name
+			left join
+			(
+				select
+					sum(returned_num) as returned_num,
+					sum(not_surplus_stock) as not_surplus_stock,
+					inventory_id,
+					status
+				from psi_management_collect_detailed_record e
+						 left join psi_management_collect_basics pmcba on e.basic_id = pmcba.id and pmcba.del_flag = 0
+				WHERE pmcba.`status` = 5 and e.del_flag = 0
+			) pmcdra
+			on a.id = pmcdra.inventory_id
 			LEFT JOIN psi_management_warehouse_basics bas on a.basic_id = bas.id
 			left join psi_management_type c on a.ware_house_type = c.id
 			${ew.customSqlSegment}
@@ -391,6 +405,7 @@
 			b.collect_number,
 			pmwd.current_inventory,
 			pmwd.spec,
+			pmcdr.not_surplus_stock as notSurplusStock,
 			b.collect_type as collectType
 		FROM
 			psi_management_collect_basics a