Browse Source

Merge branch 'master' of http://47.100.3.209:3000/gdc/yiliangyiyun

ccjgmwz 3 years ago
parent
commit
4e17f6db0b

+ 33 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/NewNoticeTaskController.java

@@ -0,0 +1,33 @@
+package com.yh.saas.plugin.yiliangyiyun.controller;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.winsea.svc.notice.command.NoticeCommand.NoticeBusinessTypeNumber;
+import com.winsea.svc.notice.entity.NoticeTaskInfo;
+import com.winsea.svc.notice.service.INoticeTaskService;
+import java.util.List;
+
+import com.yh.saas.plugin.yiliangyiyun.service.INewNoticeTaskService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping({"/newNoticeTask"})
+public class NewNoticeTaskController {
+    @Autowired
+    private INewNoticeTaskService noticeTaskService;
+
+    public NewNoticeTaskController() {
+    }
+
+    @GetMapping({"/query/noticeTasks"})
+    public Page<NoticeTaskInfo> findPageNoticeTask(NoticeTaskInfo noticeTask) {
+        return this.noticeTaskService.findPageNoticeTasks(noticeTask);
+    }
+
+    @GetMapping({"/query/businessTypeAmount"})
+    public List<NoticeBusinessTypeNumber> findBusinessTypeAmount() {
+        return this.noticeTaskService.findBusinessTypeCount();
+    }
+}

+ 1 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/QualityInspectionManagement.java

@@ -72,7 +72,7 @@ public class QualityInspectionManagement extends BaseModel<QualityInspectionMana
      */
     private String customerPhone;
     /**
-     * 质检员
+     * 质检员(初检员)
      */
     private String qualityInspector;
     /**

+ 28 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/INewNoticeTaskService.java

@@ -0,0 +1,28 @@
+package com.yh.saas.plugin.yiliangyiyun.service;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.service.IService;
+import com.winsea.svc.notice.command.NoticeCommand.NoticeBusinessTypeNumber;
+import com.winsea.svc.notice.entity.NoticeTaskInfo;
+import com.winsea.svc.notice.entity.NoticeTaskInfo.NoticeTaskStatus;
+import java.util.List;
+
+public interface INewNoticeTaskService extends IService<NoticeTaskInfo> {
+    Page<NoticeTaskInfo> findPageNoticeTasks(NoticeTaskInfo noticeTask);
+
+    List<NoticeTaskInfo> findOverdueTaskByCurrentUser();
+
+    void createNoticeTask(List<String> acceptIds, String vesselId, NoticeTaskInfo noticeTask);
+
+    Integer findNumber();
+
+    List<NoticeTaskInfo> findOverdueTask();
+
+    List<NoticeBusinessTypeNumber> findBusinessTypeCount();
+
+    void handleNoticeTaskInfo(String staffId, String businessCode, String businessKey, String vesselId);
+
+    List<NoticeTaskInfo> findNoticeTaskByBusiness(String businessCode, String businessId, NoticeTaskStatus noticeTaskStatus);
+
+    void removeReturnTask(String businessCode, String businessKey);
+}

+ 12 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/INewNoticeUtilService.java

@@ -0,0 +1,12 @@
+package com.yh.saas.plugin.yiliangyiyun.service;
+
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import java.util.List;
+
+public interface INewNoticeUtilService {
+    Wrapper<?> getCurrentUserNoticeTaskWrapper(Wrapper<?> wrapper, Class c);
+
+    Wrapper<?> getFilterVesselWrapper(List<String> vesselIds);
+
+    Wrapper<?> getFilterVesselWrapper(String vesselId);
+}

+ 327 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/NewNoticeTaskServiceImpl.java

@@ -0,0 +1,327 @@
+package com.yh.saas.plugin.yiliangyiyun.service.impl;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.alipay.sofa.runtime.api.annotation.SofaReference;
+import com.alipay.sofa.runtime.api.annotation.SofaService;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.toolkit.StringUtils;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import com.winsea.svc.base.base.entity.CommonStaffRole;
+import com.winsea.svc.base.base.service.ICommonStaffRoleService;
+import com.winsea.svc.base.base.service.ICommonStaffVesselService;
+import com.winsea.svc.base.base.util.MessagePusherUtils;
+import com.winsea.svc.base.security.util.AuthSecurityUtils;
+import com.winsea.svc.notice.command.NoticeCommand.NoticeBusinessTypeNumber;
+import com.winsea.svc.notice.entity.NoticeBusinessConstantInfo;
+import com.winsea.svc.notice.entity.NoticeBusinessResourceInfo;
+import com.winsea.svc.notice.entity.NoticeTaskInfo;
+import com.winsea.svc.notice.entity.NoticeTaskInfo.NoticeTaskPushStatus;
+import com.winsea.svc.notice.entity.NoticeTaskInfo.NoticeTaskStatus;
+import com.winsea.svc.notice.entity.base.BaseNotice.AcceptStatus;
+import com.winsea.svc.notice.exception.NoticeErrorCodeEnums;
+import com.winsea.svc.notice.exception.NoticeException;
+import com.winsea.svc.notice.mapper.NoticeTaskMapper;
+import com.winsea.svc.notice.service.INoticeBusinessConstantService;
+import com.winsea.svc.notice.service.INoticeBusinessResourceService;
+import com.winsea.svc.notice.service.INoticeTaskService;
+import com.winsea.svc.notice.service.INoticeTimePushService;
+import com.winsea.svc.notice.service.INoticeUtilService;
+import com.yh.saas.common.support.util.BeanUtils;
+import com.yh.saas.common.support.util.IdGenerator;
+import com.yh.saas.common.support.util.query.QueryUtils;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import com.yh.saas.plugin.yiliangyiyun.service.INewNoticeTaskService;
+import com.yh.saas.plugin.yiliangyiyun.service.INewNoticeUtilService;
+import org.apache.commons.collections.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+
+@SofaService
+public class NewNoticeTaskServiceImpl extends ServiceImpl<NoticeTaskMapper, NoticeTaskInfo> implements INewNoticeTaskService {
+    private static final Logger log = LoggerFactory.getLogger(com.winsea.svc.notice.service.impl.NoticeTaskServiceImpl.class);
+    @Autowired
+    private INoticeBusinessResourceService businessResourceService;
+    @Autowired
+    private INoticeBusinessConstantService businessConstantService;
+    @SofaReference
+    private ICommonStaffVesselService staffVesselService;
+    @SofaReference
+    private ICommonStaffRoleService staffRoleService;
+    @Autowired
+    private INoticeTimePushService notificationTimePushService;
+    @Autowired
+    private INewNoticeUtilService noticeUtilService;
+    private Set<String> businessCodes;
+    @Value("${taskmsg.isPushed:true}")
+    private boolean isTaskmsgPushed;
+
+    public NewNoticeTaskServiceImpl() {
+    }
+
+    public Page<NoticeTaskInfo> findPageNoticeTasks(NoticeTaskInfo noticeTask) {
+        if (null == noticeTask.getPageSize()) {
+            noticeTask.setPageSize(10);
+        }
+
+        if (null == noticeTask.getCurrentPage() || 0 == noticeTask.getCurrentPage()) {
+            noticeTask.setCurrentPage(1);
+        }
+
+        if (null == noticeTask.getNoticeTaskStatus()) {
+            noticeTask.setNoticeTaskStatus(NoticeTaskStatus.TO_BE_PROCESSED);
+        }
+
+        Wrapper<NoticeTaskInfo> noticeTaskWrapper = this.getCurrentUserNoticeTaskWrapper(noticeTask);
+        noticeTaskWrapper.orderDesc(Sets.newHashSet(new String[]{"create_date"}));
+        noticeTaskWrapper.groupBy("business_code");
+        noticeTaskWrapper.groupBy("DATE_FORMAT(create_date,'%Y-%m-%d')");
+//        noticeTaskWrapper.and("group by DATE_FORMAT(create_date,'%Y-%m-%d')");
+        Page<NoticeTaskInfo> noticeTaskInfoPage = this.selectPage(noticeTask.getQueryPage(), noticeTaskWrapper);
+        List<NoticeTaskInfo> taskInfos = noticeTaskInfoPage.getRecords();
+        List<NoticeTaskInfo> newTaskInfos = new ArrayList();
+        this.filterResource(taskInfos, newTaskInfos);
+
+        noticeTaskInfoPage.setRecords(newTaskInfos);
+        if (noticeTask.getPageSize() > taskInfos.size()) {
+            int sum = (int)noticeTaskInfoPage.getTotal();
+            int pageSize = noticeTask.getPageSize();
+
+            for(int i = 1; i < (new BigDecimal(sum)).divide(new BigDecimal(pageSize)).intValue() + 1; ++i) {
+                noticeTask.setCurrentPage(noticeTask.getCurrentPage() + 1);
+                Page<NoticeTaskInfo> taskInfoPage = this.selectPage(noticeTask.getQueryPage(), noticeTaskWrapper);
+                if (!CollectionUtils.isEmpty(taskInfoPage.getRecords())) {
+                    Iterator var10 = taskInfoPage.getRecords().iterator();
+
+                    while(var10.hasNext()) {
+                        NoticeTaskInfo noticeTaskInfo = (NoticeTaskInfo)var10.next();
+                        List<NoticeBusinessResourceInfo> noticeBusinessResourceInfos = this.businessResourceService.findNoticeBusinessResourceInfos(noticeTaskInfo.getBusinessCode());
+                        List<String> noticeResource = (List)noticeBusinessResourceInfos.stream().map(NoticeBusinessResourceInfo::getResourceId).collect(Collectors.toList());
+                        List<String> resourceIds = AuthSecurityUtils.getUserResources(AuthSecurityUtils.getCurrentUserId());
+                        if (resourceIds.containsAll(noticeResource)) {
+                            noticeTaskInfo.setMessageTitle(this.businessConstantService.findBusinessCodeInfo(noticeTaskInfo.getBusinessCode()).getReceiptName());
+                            taskInfos.add(noticeTaskInfo);
+                            if (taskInfos.size() >= pageSize) {
+                                return noticeTaskInfoPage;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        noticeTaskInfoPage.getRecords().forEach((noticeTaskInfox) -> {
+            String messageTitle = null;
+            NoticeBusinessConstantInfo businessConstantInfo = this.businessConstantService.findBusinessCodeInfo(noticeTaskInfox.getBusinessCode());
+            String messageTitleEn;
+            if (null == businessConstantInfo) {
+                messageTitle = "未知数据";
+                messageTitleEn = "Unknown data";
+            } else {
+                messageTitle = businessConstantInfo.getReceiptName();
+                messageTitleEn = businessConstantInfo.getReceiptNameEn();
+            }
+
+            noticeTaskInfox.setMessageTitle(messageTitle);
+            noticeTaskInfox.setMessageTitleEn(messageTitleEn);
+        });
+        return noticeTaskInfoPage;
+    }
+
+    public void createNoticeTask(List<String> acceptIds, String vesselId, NoticeTaskInfo noticeTask) {
+        if (null == noticeTask.getAcceptType()) {
+            throw new NoticeException(NoticeErrorCodeEnums.NOTICE_ACCEPT_TYPE_NULL_ERROR);
+        } else if (StringUtils.isEmpty(noticeTask.getCompId())) {
+            throw new NoticeException(NoticeErrorCodeEnums.NOTICE_COMP_ID_NULL_ERROR);
+        } else if (CollectionUtils.isEmpty(acceptIds) && AcceptStatus.All != noticeTask.getAcceptType()) {
+            throw new NoticeException(NoticeErrorCodeEnums.NOTICE_ACCEPT_ID_NULL_ERROR);
+        } else {
+            if (null == noticeTask.getNoticeTaskPushStatus()) {
+                noticeTask.setNoticeTaskPushStatus(NoticeTaskPushStatus.ALL);
+            }
+
+            List<NoticeTaskInfo> noticeTaskInfos = new ArrayList();
+            acceptIds.forEach((acceptId) -> {
+                NoticeTaskInfo taskInfo = (NoticeTaskInfo)BeanUtils.map(noticeTask, NoticeTaskInfo.class);
+                taskInfo.setId(IdGenerator.generateUUID());
+                taskInfo.setAcceptId(acceptId);
+                if (null == noticeTask.getNoticeTaskStatus()) {
+                    taskInfo.setNoticeTaskStatus(NoticeTaskStatus.TO_BE_PROCESSED);
+                }
+
+                taskInfo.setVesselId(vesselId);
+                taskInfo.setNoticeTaskPushStatus(NoticeTaskPushStatus.ALL);
+                noticeTaskInfos.add(taskInfo);
+                if ("1a4a82511d68454dada09f3fb2192e7d".equals(noticeTask.getCompId())) {
+                    this.push(taskInfo);
+                }
+
+            });
+            this.insertBatch(noticeTaskInfos);
+        }
+    }
+
+    public Integer findNumber() {
+        NoticeTaskInfo noticeTaskInfo = new NoticeTaskInfo();
+        noticeTaskInfo.setNoticeTaskStatus(NoticeTaskStatus.TO_BE_PROCESSED);
+        Wrapper<NoticeTaskInfo> noticeTaskWrapper = this.getCurrentUserNoticeTaskWrapper(noticeTaskInfo);
+        noticeTaskWrapper.groupBy("business_id");
+        List<NoticeTaskInfo> noticeTaskInfos = this.selectList(noticeTaskWrapper);
+        List<NoticeTaskInfo> noticeTaskInfoList = new ArrayList();
+        this.filterResource(noticeTaskInfos, noticeTaskInfoList);
+        return noticeTaskInfoList.size();
+    }
+
+    public List<NoticeTaskInfo> findOverdueTaskByCurrentUser() {
+        Wrapper<NoticeTaskInfo> noticeTaskWrapper = this.getCurrentUserNoticeTaskWrapper((NoticeTaskInfo)null);
+        noticeTaskWrapper.isNotNull("overdue_date").lt("overdue_date", new Date());
+        return this.selectList(noticeTaskWrapper);
+    }
+
+    public List<NoticeTaskInfo> findOverdueTask() {
+        Wrapper<NoticeTaskInfo> noticeTaskWrapper = new EntityWrapper();
+        noticeTaskWrapper.lt("overdue_date", new Date());
+        noticeTaskWrapper.eq("overdue_date_flag", 0);
+        return this.selectList(noticeTaskWrapper);
+    }
+
+    public List<NoticeBusinessTypeNumber> findBusinessTypeCount() {
+        NoticeTaskInfo noticeTaskInfo = new NoticeTaskInfo();
+        noticeTaskInfo.setNoticeTaskStatus(NoticeTaskStatus.TO_BE_PROCESSED);
+        Wrapper<NoticeTaskInfo> noticeTaskWrapper = this.getCurrentUserNoticeTaskWrapper(noticeTaskInfo);
+        noticeTaskWrapper.groupBy("business_id");
+        List<NoticeTaskInfo> noticeTaskInfos = this.selectList(noticeTaskWrapper);
+        List<NoticeTaskInfo> noticeTaskInfoList = new ArrayList();
+        this.filterResource(noticeTaskInfos, noticeTaskInfoList);
+        Map<String, Long> businessTypeNoticeTask = (Map)noticeTaskInfoList.stream().collect(Collectors.groupingBy(NoticeTaskInfo::getBusinessType, Collectors.counting()));
+        List<NoticeBusinessTypeNumber> noticeBusinessTypeNumbers = new ArrayList();
+        businessTypeNoticeTask.keySet();
+        Iterator var7 = businessTypeNoticeTask.keySet().iterator();
+
+        while(var7.hasNext()) {
+            String businessType = (String)var7.next();
+            if ((Long)businessTypeNoticeTask.get(businessType) > 0L) {
+                this.businessConstantService.filterBusinessTypeCount(noticeBusinessTypeNumbers, businessType, ((Long)businessTypeNoticeTask.get(businessType)).intValue());
+            }
+        }
+
+        return noticeBusinessTypeNumbers;
+    }
+
+    public void handleNoticeTaskInfo(String staffId, String businessCode, String businessKey, String vesselId) {
+        List<String> roleIds = null;
+        if (StringUtils.isEmpty(vesselId)) {
+            List<CommonStaffRole> roles = this.staffRoleService.findStaffRoles(Lists.newArrayList(new String[]{staffId}));
+            roleIds = (List)roles.stream().map(CommonStaffRole::getRoleId).collect(Collectors.toList());
+        } else {
+            roleIds = this.staffVesselService.getRoleIdsWithStaffAndVessel(staffId, vesselId);
+        }
+
+        Wrapper<NoticeTaskInfo> wrapper = new EntityWrapper();
+        wrapper.eq("business_code", businessCode);
+        wrapper.eq("business_id", businessKey);
+        Wrapper<NoticeTaskInfo> currentTaskWrapper = new EntityWrapper();
+        currentTaskWrapper.orNew().eq("accept_type", AcceptStatus.All);
+        currentTaskWrapper.orNew().eq("accept_type", AcceptStatus.STAFF).eq("accept_id", staffId).and(QueryUtils.getQueryString(this.noticeUtilService.getFilterVesselWrapper(vesselId), NoticeTaskInfo.class), new Object[0]);
+        currentTaskWrapper.orNew().in("accept_id", roleIds).eq("accept_type", AcceptStatus.ROLE).and(QueryUtils.getQueryString(this.noticeUtilService.getFilterVesselWrapper(vesselId), NoticeTaskInfo.class), new Object[0]);
+        wrapper.andNew(QueryUtils.getQueryString(currentTaskWrapper, NoticeTaskInfo.class), new Object[0]);
+        NoticeTaskInfo noticeTaskInfo = new NoticeTaskInfo();
+        noticeTaskInfo.setNoticeTaskStatus(NoticeTaskStatus.PROCESSED);
+        this.update(noticeTaskInfo, wrapper);
+    }
+
+    public List<NoticeTaskInfo> findNoticeTaskByBusiness(String businessCode, String businessId, NoticeTaskStatus noticeTaskStatus) {
+        return this.selectList((new EntityWrapper()).eq("business_code", businessCode).eq("business_id", businessId).eq("notice_task_status", NoticeTaskStatus.TO_BE_PROCESSED));
+    }
+
+    public void removeReturnTask(String businessCode, String businessKey) {
+        this.delete((new EntityWrapper()).eq("business_code", businessCode).eq("business_id", businessKey).eq("notice_task_status", NoticeTaskStatus.RETURN));
+    }
+
+    private void push(NoticeTaskInfo noticeTaskInfo) {
+        if (NoticeTaskPushStatus.NONE != noticeTaskInfo.getNoticeTaskPushStatus()) {
+            if ((NoticeTaskPushStatus.WEB == noticeTaskInfo.getNoticeTaskPushStatus() || NoticeTaskPushStatus.ALL == noticeTaskInfo.getNoticeTaskPushStatus()) && this.isTaskmsgPushed) {
+                List<String> staffIds = new ArrayList();
+                if (AcceptStatus.STAFF == noticeTaskInfo.getAcceptType()) {
+                    staffIds = Lists.newArrayList(new String[]{noticeTaskInfo.getAcceptId()});
+                }
+
+                if (AcceptStatus.ROLE == noticeTaskInfo.getAcceptType()) {
+                    List<CommonStaffRole> staffRoles = this.staffRoleService.findStaff(Lists.newArrayList(new String[]{noticeTaskInfo.getAcceptId()}));
+                    staffIds = (List)staffRoles.stream().map(CommonStaffRole::getStaffId).collect(Collectors.toList());
+                }
+
+                this.webPush((List)staffIds);
+            }
+
+        }
+    }
+
+    private void webPush(List<String> staffIds) {
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("msg", "你有1个新的任务");
+        Iterator var3 = staffIds.iterator();
+
+        while(var3.hasNext()) {
+            String staffId = (String)var3.next();
+            MessagePusherUtils.sendPrivateMessage(staffId, JSONObject.toJSONString(jsonObject));
+        }
+
+    }
+
+    private void filterResource(List<NoticeTaskInfo> taskInfos, List<NoticeTaskInfo> newTaskInfos) {
+        this.businessCodes = new HashSet();
+        List<String> resourceIds = AuthSecurityUtils.getUserResources(AuthSecurityUtils.getCurrentUserId());
+        Iterator var4 = taskInfos.iterator();
+
+        while(true) {
+            NoticeTaskInfo taskInfo;
+            do {
+                if (!var4.hasNext()) {
+                    return;
+                }
+
+                taskInfo = (NoticeTaskInfo)var4.next();
+            } while(!this.businessCodes.contains(taskInfo.getBusinessCode()) && !this.businessResourceService.determineBusinessCodeResource(resourceIds, taskInfo.getBusinessCode()));
+
+            this.businessCodes.add(taskInfo.getBusinessCode());
+            newTaskInfos.add(taskInfo);
+        }
+    }
+
+    private Wrapper<NoticeTaskInfo> getCurrentUserNoticeTaskWrapper(NoticeTaskInfo noticeTask) {
+        boolean returnFlag = false;
+        if (null != noticeTask && NoticeTaskStatus.TO_BE_PROCESSED.equals(noticeTask.getNoticeTaskStatus())) {
+            returnFlag = true;
+            noticeTask.setNoticeTaskStatus((NoticeTaskStatus)null);
+        }
+
+        Object wrapper;
+        if (null == noticeTask) {
+            wrapper = new EntityWrapper();
+        } else {
+            wrapper = QueryUtils.convertExampleToWrapper(noticeTask);
+        }
+
+        if (returnFlag) {
+            ((Wrapper)wrapper).in("notice_task_status", Lists.newArrayList(new NoticeTaskStatus[]{NoticeTaskStatus.TO_BE_PROCESSED, NoticeTaskStatus.RETURN, NoticeTaskStatus.TO_BE_REPAIRED}));
+        }
+
+        return (Wrapper<NoticeTaskInfo>) this.noticeUtilService.getCurrentUserNoticeTaskWrapper((Wrapper)wrapper, NoticeTaskInfo.class);
+    }
+}

+ 84 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/NewNoticeUtilServiceImpl.java

@@ -0,0 +1,84 @@
+package com.yh.saas.plugin.yiliangyiyun.service.impl;
+
+
+import com.alipay.sofa.runtime.api.annotation.SofaReference;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.google.common.collect.Lists;
+import com.winsea.svc.base.base.entity.CommonStaffVessel;
+import com.winsea.svc.base.base.service.ICommonStaffVesselService;
+import com.winsea.svc.base.base.service.ICommonVesselService;
+import com.winsea.svc.base.security.util.AuthSecurityUtils;
+import com.winsea.svc.notice.entity.base.BaseNotice.AcceptStatus;
+import com.winsea.svc.notice.service.INoticeUtilService;
+import com.yh.saas.common.support.util.query.QueryUtils;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import com.yh.saas.plugin.yiliangyiyun.service.INewNoticeUtilService;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+@Service
+public class NewNoticeUtilServiceImpl implements INewNoticeUtilService {
+    private static final Logger log = LoggerFactory.getLogger(com.winsea.svc.notice.service.impl.NoticeUtilServiceImpl.class);
+    @SofaReference
+    private ICommonVesselService vesselService;
+    @SofaReference
+    private ICommonStaffVesselService staffVesselService;
+
+    public NewNoticeUtilServiceImpl() {
+    }
+
+    public Wrapper<?> getCurrentUserNoticeTaskWrapper(Wrapper<?> wrapper, Class c) {
+        String staffId = AuthSecurityUtils.getCurrentUserId();
+        List<CommonStaffVessel> staffVessels = this.staffVesselService.findStaffVessel(AuthSecurityUtils.getCurrentUserId());
+        Map<String, List<CommonStaffVessel>> map = (Map)staffVessels.stream().collect(Collectors.groupingBy(CommonStaffVessel::getRoleId));
+        Set<String> roleIds = map.keySet();
+        List<String> vesselIds = (List)staffVessels.stream().map(CommonStaffVessel::getVesselId).collect(Collectors.toList());
+        Wrapper<?> currentTaskWrapper = new EntityWrapper();
+        currentTaskWrapper.orNew().eq("accept_type", AcceptStatus.All);
+        currentTaskWrapper.orNew().in("accept_id", staffId).eq("accept_type", AcceptStatus.STAFF).and(QueryUtils.getQueryString(this.getFilterVesselWrapper(vesselIds), c), new Object[0]);
+        Iterator var9 = roleIds.iterator();
+
+        while(var9.hasNext()) {
+            String roleId = (String)var9.next();
+            List<CommonStaffVessel> staffRoleVessels = this.staffVesselService.findStaffVessel(AuthSecurityUtils.getCurrentUserId(), roleId);
+            List<String> staffRoleVesselIds = (List)staffRoleVessels.stream().map(CommonStaffVessel::getVesselId).collect(Collectors.toList());
+            currentTaskWrapper.orNew().in("accept_id", roleIds).eq("accept_type", AcceptStatus.ROLE).and(QueryUtils.getQueryString(this.getFilterVesselWrapper(staffRoleVesselIds), c), new Object[0]);
+        }
+
+        wrapper.andNew(QueryUtils.getQueryString(currentTaskWrapper, c), new Object[0]);
+        return wrapper;
+    }
+
+    public Wrapper<?> getFilterVesselWrapper(List<String> vesselIds) {
+        Wrapper<?> wrapper = new EntityWrapper();
+        if (CollectionUtils.isEmpty(vesselIds)) {
+            wrapper.isNull("vessel_id");
+        } else {
+            List<String> newVesselIds = this.vesselService.getVesselIdByVesselStatusAndVesselId(vesselIds);
+            wrapper.in("vessel_id", newVesselIds).or().isNull("vessel_id");
+        }
+
+        return wrapper;
+    }
+
+    public Wrapper<?> getFilterVesselWrapper(String vesselId) {
+        Wrapper<?> wrapper = new EntityWrapper();
+        if (StringUtils.isEmpty(vesselId)) {
+            wrapper.isNull("vessel_id");
+        } else {
+            List<String> newVesselIds = this.vesselService.getVesselIdByVesselStatusAndVesselId(Lists.newArrayList(new String[]{vesselId}));
+            wrapper.in("vessel_id", newVesselIds).or().isNull("vessel_id");
+        }
+
+        return wrapper;
+    }
+}

+ 139 - 59
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/PaymentManagementServiceImpl.java

@@ -948,7 +948,10 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
         sheet.setColumnWidth(28, 12 * 256 + 184);
         sheet.setColumnWidth(29, 12 * 256 + 184);
         sheet.setColumnWidth(30, 12 * 256 + 184);
-        sheet.setColumnWidth(31, 1 * 256 + 184);
+        sheet.setColumnWidth(31, 12 * 256 + 184);
+        sheet.setColumnWidth(32, 12 * 256 + 184);
+        sheet.setColumnWidth(33, 12 * 256 + 184);
+        sheet.setColumnWidth(34, 1 * 256 + 184);
 
         // 创建单元格对象
         HSSFCell cell = null;
@@ -1030,7 +1033,12 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
         cell.setCellStyle(styleTitle);
         cell = row0.createCell(30);
         cell.setCellStyle(styleTitle);
-
+        cell = row0.createCell(31);
+        cell.setCellStyle(styleTitle);
+        cell = row0.createCell(32);
+        cell.setCellStyle(styleTitle);
+        cell = row0.createCell(33);
+        cell.setCellStyle(styleTitle);
         rownum++;
 
         HSSFRow row1 = sheet.createRow((int) rownum);
@@ -1057,72 +1065,81 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
         cell.setCellValue("供应商");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(8);
-        cell.setCellValue("货名");
+        cell.setCellValue("初检员");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(9);
-        cell.setCellValue("类型");
+        cell.setCellValue("复检员");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(10);
-        cell.setCellValue("等级");
+        cell.setCellValue("检斤员");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(11);
-        cell.setCellValue("水分");
+        cell.setCellValue("货名");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(12);
-        cell.setCellValue("杂质");
+        cell.setCellValue("类型");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(13);
-        cell.setCellValue("霉变粒");
+        cell.setCellValue("等级");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(14);
-        cell.setCellValue("不完善粒");
+        cell.setCellValue("水分");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(15);
-        cell.setCellValue("容重");
+        cell.setCellValue("杂质");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(16);
-        cell.setCellValue("热损伤");
+        cell.setCellValue("霉变粒");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(17);
-        cell.setCellValue("车牌号");
+        cell.setCellValue("不完善粒");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(18);
-        cell.setCellValue("净重单价");
+        cell.setCellValue("容重");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(19);
-        cell.setCellValue("毛重");
+        cell.setCellValue("热损伤");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(20);
-        cell.setCellValue("皮重");
+        cell.setCellValue("车牌号");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(21);
-        cell.setCellValue("扣重");
+        cell.setCellValue("净重单价");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(22);
-        cell.setCellValue("重");
+        cell.setCellValue("重");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(23);
-        cell.setCellValue("扣单价");
+        cell.setCellValue("皮重");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(24);
-        cell.setCellValue("纯重单价");
+        cell.setCellValue("扣重");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(25);
-        cell.setCellValue("重");
+        cell.setCellValue("重");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(26);
-        cell.setCellValue("合计应付");
+        cell.setCellValue("扣单价");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(27);
-        cell.setCellValue("实付金额");
+        cell.setCellValue("纯重单价");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(28);
-        cell.setCellValue("姓名");
+        cell.setCellValue("纯重");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(29);
-        cell.setCellValue("卡号");
+        cell.setCellValue("合计应付");
         cell.setCellStyle(styleDetail);
         cell = row1.createCell(30);
+        cell.setCellValue("实付金额");
+        cell.setCellStyle(styleDetail);
+        cell = row1.createCell(31);
+        cell.setCellValue("姓名");
+        cell.setCellStyle(styleDetail);
+        cell = row1.createCell(32);
+        cell.setCellValue("卡号");
+        cell.setCellStyle(styleDetail);
+        cell = row1.createCell(33);
         cell.setCellValue("开户支行");
         cell.setCellStyle(styleDetail);
 
@@ -1139,7 +1156,6 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
             Double imperfectGrainTotal = 0d;//不完善粒合计
             Double bulkDensityTotal = 0d;//容重合计
             Double jiaorenliTotal = 0d;//热损伤合计
-            Double netWeightPriceTotal = 0d;//单价合计
             Double netWeightTotal = 0d;//净重合计
             Double amountIngPayableTotal = 0d;//应收合计
             for (int i = 0; i < paymentManagement.getPaymentManagementList().size(); i++) {
@@ -1150,6 +1166,11 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
                         .eq("relation_id", paymentManagement1.getRelationId())
                         .eq("comp_id", paymentManagement1.getCompId())
                 ));
+                paymentManagement1.setWeighingManagement(weighingManagementService.selectOne(
+                        new EntityWrapper<WeighingManagement>()
+                                .eq("relation_id", paymentManagement1.getRelationId())
+                                .eq("comp_id", paymentManagement1.getCompId())
+                ));
                 HSSFRow rowx = sheet.createRow((int) rownum);
                 rowx.setHeightInPoints(20);
                 cell = rowx.createCell(1);
@@ -1175,38 +1196,47 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
                 cell.setCellValue(editString(paymentManagement1.getIdentityAuthenticationInfo().getSupplier()));
                 cell.setCellStyle(styleDetail);
                 cell = rowx.createCell(8);
-                cell.setCellValue(editString(paymentManagement1.getGoodsName()));
+                cell.setCellValue(editString(paymentManagement1.getQualityInspectionManagement().getQualityInspector()));
                 cell.setCellStyle(styleDetail);
                 cell = rowx.createCell(9);
-                cell.setCellValue(editString(paymentManagement1.getType()));
+                cell.setCellValue(editString(paymentManagement1.getQualityInspectionManagement().getReInspector()));
                 cell.setCellStyle(styleDetail);
                 cell = rowx.createCell(10);
+                cell.setCellValue(editString(paymentManagement1.getWeighingManagement().getSkinInspector()));
+                cell.setCellStyle(styleDetail);
+                cell = rowx.createCell(11);
+                cell.setCellValue(editString(paymentManagement1.getGoodsName()));
+                cell.setCellStyle(styleDetail);
+                cell = rowx.createCell(12);
+                cell.setCellValue(editString(paymentManagement1.getType()));
+                cell.setCellStyle(styleDetail);
+                cell = rowx.createCell(13);
                 cell.setCellValue(editString(paymentManagement1.getQualityInspectionManagement().getGrade()));
                 cell.setCellStyle(styleDetail);
                 HSSFDataFormat df = wb.createDataFormat(); // 此处设置数据格式
                 contextstyle.setDataFormat(df.getBuiltinFormat("#,##0.00"));//保留两位小数点
-                cell = rowx.createCell(11);
+                cell = rowx.createCell(14);
                 cell.setCellValue(Double.parseDouble(paymentManagement1.getQualityInspectionManagement().getWaterContent()!=null?paymentManagement1.getQualityInspectionManagement().getWaterContent():"0"));
                 cell.setCellStyle(contextstyle);
-                cell = rowx.createCell(12);
+                cell = rowx.createCell(15);
                 cell.setCellValue(Double.parseDouble(paymentManagement1.getQualityInspectionManagement().getImpurity()!=null?paymentManagement1.getQualityInspectionManagement().getImpurity():"0"));
                 cell.setCellStyle(contextstyle);
-                cell = rowx.createCell(13);
+                cell = rowx.createCell(16);
                 cell.setCellValue(Double.parseDouble(paymentManagement1.getQualityInspectionManagement().getMildewGrain()!=null?paymentManagement1.getQualityInspectionManagement().getMildewGrain():"0"));
                 cell.setCellStyle(contextstyle);
-                cell = rowx.createCell(14);
+                cell = rowx.createCell(17);
                 cell.setCellValue(Double.parseDouble(paymentManagement1.getQualityInspectionManagement().getImperfectGrain()!=null?paymentManagement1.getQualityInspectionManagement().getImperfectGrain():"0"));
                 cell.setCellStyle(contextstyle);
-                cell = rowx.createCell(15);
+                cell = rowx.createCell(18);
                 cell.setCellValue(Double.parseDouble(paymentManagement1.getQualityInspectionManagement().getBulkDensity()!=null?paymentManagement1.getQualityInspectionManagement().getBulkDensity():"0"));
                 cell.setCellStyle(contextstyle);
-                cell = rowx.createCell(16);
+                cell = rowx.createCell(19);
                 cell.setCellValue(Double.parseDouble(paymentManagement1.getQualityInspectionManagement().getJiaorenli()!=null?paymentManagement1.getQualityInspectionManagement().getJiaorenli():"0"));
                 cell.setCellStyle(contextstyle);
-                cell = rowx.createCell(17);
+                cell = rowx.createCell(20);
                 cell.setCellValue(editString(paymentManagement1.getCarNo()));
                 cell.setCellStyle(styleDetail);
-                cell = rowx.createCell(18);
+                cell = rowx.createCell(21);
 //                if("潮粮".equals(paymentManagement1.getType())){
 //                    cell.setCellValue(new Formatter().format("%.3f", editFloat(paymentManagement1.getTidalGrainPrice())).toString());
 //
@@ -1217,40 +1247,40 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
 //                }
                 cell.setCellValue(new Formatter().format("%.3f", editFloat(paymentManagement1.getTidalGrainPrice())).toString());
                 cell.setCellStyle(styleDetail);
-                cell = rowx.createCell(19);
+                cell = rowx.createCell(22);
                 cell.setCellValue(editFloat(paymentManagement1.getGrossWeight()));
                 cell.setCellStyle(styleDetail);
-                cell = rowx.createCell(20);
+                cell = rowx.createCell(23);
                 cell.setCellValue(editFloat(paymentManagement1.getTare()));
                 cell.setCellStyle(styleDetail);
-                cell = rowx.createCell(21);
+                cell = rowx.createCell(24);
                 cell.setCellValue(new Formatter().format("%.2f", editFloat(paymentManagement1.getWeightDeduction())).toString());
                 cell.setCellStyle(styleDetail);
-                cell = rowx.createCell(22);
+                cell = rowx.createCell(25);
                 cell.setCellValue(editFloat(paymentManagement1.getNetWeight()));
                 cell.setCellStyle(styleDetail);
-                cell = rowx.createCell(23);
+                cell = rowx.createCell(26);
                 cell.setCellValue(editDouble(paymentManagement1.getUnitDeduction()));
                 cell.setCellStyle(styleDetail);
-                cell = rowx.createCell(24);
+                cell = rowx.createCell(27);
                 cell.setCellValue(new Formatter().format("%.2f", editFloat(paymentManagement1.getSolidGrainPrice())).toString());
                 cell.setCellStyle(styleDetail);
-                cell = rowx.createCell(25);
+                cell = rowx.createCell(28);
                 cell.setCellValue(editFloat(paymentManagement1.getPureWeight()));
                 cell.setCellStyle(styleDetail);
-                cell = rowx.createCell(26);
+                cell = rowx.createCell(29);
                 cell.setCellValue(editDouble(paymentManagement1.getAmountIngPayable()));
                 cell.setCellStyle(styleDetail);
-                cell = rowx.createCell(27);
+                cell = rowx.createCell(30);
                 cell.setCellValue(editDouble(paymentManagement1.getAmountEdPayable()));
                 cell.setCellStyle(styleDetail);
-                cell = rowx.createCell(28);
+                cell = rowx.createCell(31);
                 cell.setCellValue(editString(paymentManagement1.getCustomerName()));
                 cell.setCellStyle(styleDetail);
-                cell = rowx.createCell(29);
+                cell = rowx.createCell(32);
                 cell.setCellValue(editString(paymentManagement1.getIdentityAuthenticationInfo().getBankCard()));
                 cell.setCellStyle(styleDetail);
-                cell = rowx.createCell(30);
+                cell = rowx.createCell(33);
                 cell.setCellValue(editString(paymentManagement1.getIdentityAuthenticationInfo().getBankDeposit() + "-" +paymentManagement1.getIdentityAuthenticationInfo().getBankDepositBranch()));
                 cell.setCellStyle(styleDetail);
 
@@ -1261,7 +1291,7 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
                 imperfectGrainTotal = imperfectGrainTotal + ((Double.valueOf(String.valueOf(paymentManagement1.getQualityInspectionManagement().getImperfectGrain()!=null?paymentManagement1.getQualityInspectionManagement().getImperfectGrain():"0"))) * (Double.valueOf(String.valueOf(paymentManagement1.getNetWeight()))));
                 bulkDensityTotal = bulkDensityTotal + ((Double.valueOf(String.valueOf(paymentManagement1.getQualityInspectionManagement().getBulkDensity()!=null?paymentManagement1.getQualityInspectionManagement().getBulkDensity():"0"))) * (Double.valueOf(String.valueOf(paymentManagement1.getNetWeight()))));
                 jiaorenliTotal = jiaorenliTotal + ((Double.valueOf(String.valueOf(paymentManagement1.getQualityInspectionManagement().getJiaorenli()!=null?paymentManagement1.getQualityInspectionManagement().getJiaorenli():"0"))) * (Double.valueOf(String.valueOf(paymentManagement1.getNetWeight()))));
-                netWeightPriceTotal = netWeightPriceTotal + (Double.valueOf(String.valueOf(paymentManagement1.getTidalGrainPrice())));
+//                netWeightPriceTotal = netWeightPriceTotal + (Double.valueOf(String.valueOf(paymentManagement1.getTidalGrainPrice())));
                 netWeightTotal = netWeightTotal + (Double.valueOf(String.valueOf(paymentManagement1.getNetWeight())));
                 amountIngPayableTotal = amountIngPayableTotal + paymentManagement1.getAmountIngPayable();
 
@@ -1269,34 +1299,84 @@ public class PaymentManagementServiceImpl extends ServiceImpl<PaymentManagementM
             }
             HSSFRow rowp = sheet.createRow((int)(rownum));
             rowp.setHeightInPoints(20);
-
-            //水分平均值
+            cell = rowp.createCell(1);
+            cell.setCellValue("平均值/合计");
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(2);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(3);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(4);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(5);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(6);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(7);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(8);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(9);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(10);
+            cell.setCellStyle(styleDetail);
             cell = rowp.createCell(11);
-            cell.setCellStyle(contextstyle);
-            cell.setCellValue(waterContentTotal/netWeightTotal);
+            cell.setCellStyle(styleDetail);
             cell = rowp.createCell(12);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(13);
+            cell.setCellStyle(styleDetail);
+            //水分平均值
+            cell = rowp.createCell(14);
+            cell.setCellValue(waterContentTotal/netWeightTotal);
+            cell.setCellStyle(contextstyle);
+            cell = rowp.createCell(15);
             cell.setCellValue(impurityTotal/netWeightTotal);
             cell.setCellStyle(contextstyle);
-            cell = rowp.createCell(13);
+            cell = rowp.createCell(16);
             cell.setCellValue(mildewGrainTotal/netWeightTotal);
             cell.setCellStyle(contextstyle);
-            cell = rowp.createCell(14);
+            cell = rowp.createCell(17);
             cell.setCellValue(imperfectGrainTotal/netWeightTotal);
             cell.setCellStyle(contextstyle);
-            cell = rowp.createCell(15);
+            cell = rowp.createCell(18);
             cell.setCellValue(bulkDensityTotal/netWeightTotal);
             cell.setCellStyle(contextstyle);
-            cell = rowp.createCell(16);
+            cell = rowp.createCell(19);
             cell.setCellValue(jiaorenliTotal/netWeightTotal);
             cell.setCellStyle(contextstyle);
-            cell = rowp.createCell(18);
-            cell.setCellValue(netWeightPriceTotal/paymentManagement.getPaymentManagementList().size());
+            cell = rowp.createCell(20);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(21);
+            cell.setCellValue(amountIngPayableTotal/netWeightTotal);
             cell.setCellStyle(contextstyle);
-            //净重合计
             cell = rowp.createCell(22);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(23);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(24);
+            cell.setCellStyle(styleDetail);
+            //净重合计
+            cell = rowp.createCell(25);
             cell.setCellValue(netWeightTotal);
+            cell.setCellStyle(styleDetail);
             cell = rowp.createCell(26);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(27);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(28);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(29);
             cell.setCellValue(amountIngPayableTotal);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(30);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(31);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(32);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(33);
+            cell.setCellStyle(styleDetail);
         }
 
 

+ 139 - 3
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WarehouseBaseInfoServiceImpl.java

@@ -2029,11 +2029,35 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
             }
             HSSFRow rowp = sheet.createRow((int)(rownum));
             rowp.setHeightInPoints(20);
+            cell = rowp.createCell(1);
+            cell.setCellValue("平均值/合计");
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(2);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(3);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(4);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(5);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(6);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(7);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(8);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(9);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(10);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(11);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(12);
+            cell.setCellStyle(styleDetail);
             //水分平均值
-
             cell = rowp.createCell(13);
-            cell.setCellStyle(contextstyle);
             cell.setCellValue(waterContentTotal/netWeightTotal);
+            cell.setCellStyle(contextstyle);
             cell = rowp.createCell(14);
             cell.setCellValue(impurityTotal/netWeightTotal);
             cell.setCellStyle(contextstyle);
@@ -2049,14 +2073,53 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
             cell = rowp.createCell(18);
             cell.setCellValue(jiaorenliTotal/netWeightTotal);
             cell.setCellStyle(contextstyle);
+            cell = rowp.createCell(19);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(20);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(21);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(22);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(23);
+            cell.setCellStyle(styleDetail);
             cell = rowp.createCell(24);
             cell.setCellValue(netWeightPriceTotal/dataList.size());
             cell.setCellStyle(contextstyle);
+            cell = rowp.createCell(25);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(26);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(27);
+            cell.setCellStyle(styleDetail);
             //纯重合计
             cell = rowp.createCell(28);
             cell.setCellValue(netWeightTotal);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(29);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(30);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(31);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(32);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(33);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(34);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(35);
+            cell.setCellStyle(styleDetail);
             cell = rowp.createCell(36);
             cell.setCellValue(amountIngPayableTotal);
+            cell = rowp.createCell(37);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(38);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(39);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(40);
+            cell.setCellStyle(styleDetail);
         }
 
 
@@ -2736,10 +2799,35 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
             }
             HSSFRow rowp = sheet.createRow((int)(rownum));
             rowp.setHeightInPoints(20);
-            //水分平均值
+            cell = rowp.createCell(1);
+            cell.setCellValue("平均值/合计");
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(2);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(3);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(4);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(5);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(6);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(7);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(8);
+            cell.setCellStyle(styleDetail);
             cell = rowp.createCell(9);
             cell.setCellValue(netWeightPriceTotal/dataList.size());
             cell.setCellStyle(contextstyle);
+            cell = rowp.createCell(10);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(11);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(12);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(13);
+            cell.setCellStyle(styleDetail);
+            //水分平均值
             cell = rowp.createCell(14);
             cell.setCellStyle(contextstyle);
             cell.setCellValue(waterContentTotal/netWeightTotal);
@@ -2758,11 +2846,59 @@ public class WarehouseBaseInfoServiceImpl extends ServiceImpl<WarehouseBaseInfoM
             cell = rowp.createCell(19);
             cell.setCellValue(jiaorenliTotal/netWeightTotal);
             cell.setCellStyle(contextstyle);
+            cell = rowp.createCell(20);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(21);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(22);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(23);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(24);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(25);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(26);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(27);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(28);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(29);
+            cell.setCellStyle(styleDetail);
             //纯重合计
             cell = rowp.createCell(30);
             cell.setCellValue(netWeightTotal);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(31);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(32);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(33);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(34);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(35);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(36);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(37);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(38);
+            cell.setCellStyle(styleDetail);
             cell = rowp.createCell(39);
             cell.setCellValue(amountIngPayableTotal);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(40);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(41);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(42);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(43);
+            cell.setCellStyle(styleDetail);
+            cell = rowp.createCell(44);
+            cell.setCellStyle(styleDetail);
         }