yzc před 1 rokem
rodič
revize
a90b3bbae2

+ 4 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/report/dto/ReportLossesDetailsSelectDto.java

@@ -24,5 +24,9 @@ public class ReportLossesDetailsSelectDto extends BaseSelectDto {
      */
     private Integer pastDay;
 
+    /**
+     * 归属公司
+     */
+    private Long companyId;
 
 }

+ 5 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/report/po/ReportLossesDetails.java

@@ -55,4 +55,9 @@ public class ReportLossesDetails extends BasePo {
      */
     private String repoTime;
 
+    /**
+     * 归属公司
+     */
+    private Long companyId;
+
 }

+ 5 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/report/vo/ReportLossesDetailsVo.java

@@ -47,4 +47,9 @@ public class ReportLossesDetailsVo extends ReportLossesDetails {
      */
     private String respUserName;
 
+    /**
+     * 归属公司名称
+     */
+    private String companyName;
+
 }

+ 34 - 0
hx-mes/src/main/java/com/fjhx/mes/service/report/impl/ReportLossesDetailsServiceImpl.java

@@ -15,18 +15,22 @@ import com.fjhx.mes.entity.report.po.ReportLossesDetails;
 import com.fjhx.mes.entity.report.vo.ReportLossesDetailsVo;
 import com.fjhx.mes.mapper.report.ReportLossesDetailsMapper;
 import com.fjhx.mes.service.report.ReportLossesDetailsService;
+import com.fjhx.tenant.utils.DeptUstil;
 import com.fjhx.wms.entity.stock.emums.JournalType;
 import com.fjhx.wms.entity.stock.po.StockWait;
 import com.fjhx.wms.entity.stock.po.StockWaitDetails;
 import com.fjhx.wms.service.stock.StockWaitDetailsService;
 import com.fjhx.wms.service.stock.StockWaitService;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 
 /**
@@ -79,6 +83,14 @@ public class ReportLossesDetailsServiceImpl extends ServiceImpl<ReportLossesDeta
             );
         }
 
+        //权限过滤:报损统计-子公司看自己的,总公司看全部
+        Long companyId = SecurityUtils.getCompanyId();
+        if (!Objects.equals(companyId, 100L)) {
+            wrapper.eq("rld", ReportLossesDetails::getCompanyId, companyId);
+        } else {
+            wrapper.eq("rld", ReportLossesDetails::getCompanyId, dto.getCompanyId());
+        }
+
 
         wrapper.groupBy("rld.id");
 
@@ -90,6 +102,15 @@ public class ReportLossesDetailsServiceImpl extends ServiceImpl<ReportLossesDeta
             return page;
         }
 
+        //获取生产公司信息
+        List<Long> companyIds = records.stream().map(ReportLossesDetailsVo::getCompanyId).collect(Collectors.toList());
+        Map<Long, String> companyNameMap = DeptUstil.getDeptNameMap(companyIds);
+
+        for (ReportLossesDetailsVo record : records) {
+            //赋值生产公司名称
+            record.setCompanyName(companyNameMap.get(record.getCompanyId()));
+        }
+
         //赋值产品信息
         productInfoService.attributeAssign(records, ReportLossesDetailsVo::getMaterialId, (item, product) -> {
             item.setMaterialCode(product.getCustomCode());
@@ -112,6 +133,10 @@ public class ReportLossesDetailsServiceImpl extends ServiceImpl<ReportLossesDeta
     @DSTransactional
     @Override
     public void add(ReportLossesDetailsDto dto) {
+
+        Long companyId = SecurityUtils.getCompanyId();
+        dto.setCompanyId(companyId);
+
         this.save(dto);
 
         //保存附件
@@ -151,6 +176,15 @@ public class ReportLossesDetailsServiceImpl extends ServiceImpl<ReportLossesDeta
     @Override
     public JSONObject lossesStatistics(ReportLossesDetailsSelectDto dto) {
         IWrapper<Object> wrapper = IWrapper.getWrapper();
+
+        //权限过滤:报损统计-子公司看自己的,总公司看全部
+        Long companyId = SecurityUtils.getCompanyId();
+        if (!Objects.equals(companyId, 100L)) {
+            wrapper.eq("rld", ReportLossesDetails::getCompanyId, companyId);
+        } else {
+            wrapper.eq("rld", ReportLossesDetails::getCompanyId, dto.getCompanyId());
+        }
+
         //近n天过滤
         Integer pastDay = dto.getPastDay();
         if (ObjectUtil.isNotEmpty(pastDay)) {