ly 1 жил өмнө
parent
commit
534a542e7a

+ 1 - 1
src/main/java/cn/ezhizao/common/utils/poi/ExcelUtil.java

@@ -1460,7 +1460,7 @@ public class ExcelUtil<T>
      */
     public void createWorkbook()
     {
-        this.wb = new SXSSFWorkbook(500);
+        this.wb = new SXSSFWorkbook(-1);
         this.sheet = wb.createSheet();
         wb.setSheetName(0, sheetName);
         this.styles = createStyles(wb);

+ 10 - 0
src/main/java/cn/ezhizao/project/business/keepAccounts/domain/BizFinancialKeepAccount.java

@@ -1,5 +1,6 @@
 package cn.ezhizao.project.business.keepAccounts.domain;
 
+import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
 import cn.ezhizao.framework.web.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModel;
@@ -8,6 +9,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.util.Date;
 import java.util.List;
 
 @EqualsAndHashCode(callSuper = true)
@@ -67,4 +69,12 @@ public class BizFinancialKeepAccount extends BaseEntity {
     @ApiModelProperty(value = "是否零申报")
     @TableField(exist = false)
     private Integer isZero;
+    @TableField(exist = false)
+    @Excel(name = "上传时间", sort = 8)
+    private Date finishTime;
+    @TableField(exist = false)
+    private Long finishUserId;
+    @TableField(exist = false)
+    @Excel(name = "上传人", sort = 8)
+    private String finishUserName;
 }

+ 18 - 1
src/main/java/cn/ezhizao/project/business/order/controller/BizArchiveInputController.java

@@ -11,6 +11,8 @@ import cn.ezhizao.framework.web.domain.AjaxResult;
 import cn.ezhizao.framework.web.page.TableDataInfo;
 import cn.ezhizao.project.business.channel.domain.BizChannel;
 import cn.ezhizao.project.business.channel.service.IBizChannelService;
+import cn.ezhizao.project.business.collection.domain.BizCollectionDetail;
+import cn.ezhizao.project.business.collection.service.IBizCollectionDetailService;
 import cn.ezhizao.project.business.company.domain.BizCompany;
 import cn.ezhizao.project.business.company.service.IBizCompanyService;
 import cn.ezhizao.project.business.order.domain.*;
@@ -30,6 +32,8 @@ import cn.ezhizao.project.system.service.ISysFileStorageService;
 import cn.ezhizao.project.system.service.ISysUserService;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
+import com.alibaba.nacos.common.utils.CollectionUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.springframework.core.io.ResourceLoader;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
@@ -79,7 +83,8 @@ public class BizArchiveInputController extends BaseController {
     private ISysFileStorageService fileStorageService;
     @Resource
     private IBizWorkOrderService workOrderService;
-
+    @Resource
+    private IBizCollectionDetailService bizCollectionDetailService;
     /**
      * 查询档案入库列表
      */
@@ -185,6 +190,8 @@ public class BizArchiveInputController extends BaseController {
     @Log(title = "合同变更", businessType = BusinessType.UPDATE)
     @Transactional(rollbackFor = Exception.class)
     public AjaxResult alter(@RequestBody BizArchiveInput bizArchiveInput) {
+        Long userId = SecurityUtils.getUserId();
+
         BizArchiveInput oldBizArchiveInput = getById(bizArchiveInput.getId());
         checkAlter(bizArchiveInput, oldBizArchiveInput);
         setNullId(oldBizArchiveInput);
@@ -302,6 +309,16 @@ public class BizArchiveInputController extends BaseController {
             if (!changeList.isEmpty() && !bizArchiveInputService.checkWorkOrderChangeStatus(changeList)) {
                 throw new ServiceException("修改任务月数小于已完成月数。");
             }
+        for (BizArchiveInputDetail item : delList) {
+
+            List<BizCollectionDetail> list = bizCollectionDetailService.list(new LambdaQueryWrapper<BizCollectionDetail>()
+                    .eq(BizCollectionDetail::getContractId, newBizArchiveInput.getId())
+                    .eq(BizCollectionDetail::getContractDetailId, item.getId())
+                    .eq(BizCollectionDetail::getTaskTypeId, item.getTaskTypeId()));
+            if(CollectionUtils.isNotEmpty(list)){
+                throw new RuntimeException("已存在该任务类型的收款合同,无法删除");
+            }
+        }
         }
         return true;
     }

+ 27 - 14
src/main/java/cn/ezhizao/project/business/order/service/impl/BizArchiveInputServiceImpl.java

@@ -16,6 +16,9 @@ import cn.ezhizao.common.utils.StringUtils;
 import cn.ezhizao.common.utils.uuid.SnowflakeIdWorker;
 import cn.ezhizao.project.business.channel.domain.BizChannel;
 import cn.ezhizao.project.business.channel.service.IBizChannelService;
+import cn.ezhizao.project.business.collection.domain.BizCollection;
+import cn.ezhizao.project.business.collection.domain.BizCollectionDetail;
+import cn.ezhizao.project.business.collection.service.IBizCollectionDetailService;
 import cn.ezhizao.project.business.company.domain.BizCompany;
 import cn.ezhizao.project.business.company.domain.DictRegion;
 import cn.ezhizao.project.business.company.service.IBizCompanyService;
@@ -42,6 +45,8 @@ import cn.ezhizao.project.system.service.ISysFileStorageService;
 import cn.ezhizao.project.system.service.ISysUserService;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
+import com.alibaba.nacos.common.utils.CollectionUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
@@ -83,6 +88,8 @@ public class BizArchiveInputServiceImpl extends ServiceImpl<BizArchiveInputMappe
     private IBizSourceService bizSourceService;
     @Resource
     SnowflakeIdWorker snowflakeIdWorker;
+    @Resource
+    private IBizCollectionDetailService bizCollectionDetailService;
 
     final String[] reportTaskTableNames = {"biz_financial_individual_income_tax", "biz_financial_keep_account", "biz_financial_receive_ticket", "biz_financial_report_tax", "biz_financial_salary"};
 
@@ -134,7 +141,8 @@ public class BizArchiveInputServiceImpl extends ServiceImpl<BizArchiveInputMappe
             if (bizArchiveInput.getServiceType().equals(1)) {
                 // 假设是循环 判断是否已有该任务并没有签出
                 details.forEach(l -> {
-                    List<BizWorkOrder> workOrders = workOrderService.query().eq("company_id", bizArchiveInput.getCompanyId()).eq("task_type_id", l.getTaskTypeId()).eq("is_stop", 0).list();
+                    List<BizWorkOrder> workOrders = workOrderService.query().eq("deleted", 0)
+                            .eq("company_id", bizArchiveInput.getCompanyId()).eq("task_type_id", l.getTaskTypeId()).eq("is_stop", 0).list();
                     List<BizWorkOrderDetail> workOrderDetails = workOrderDetailService.query().eq("contract_detail_id", l.getId()).eq("is_stop", 0).list();
                     // 假设未有该任务 添加任务记录
                     if (workOrders.isEmpty()) {
@@ -303,6 +311,9 @@ public class BizArchiveInputServiceImpl extends ServiceImpl<BizArchiveInputMappe
                 stopWorkOrders.forEach(l -> l.setIsStop(1));
             }
         }
+
+
+
         boolean status = (newWorkOrderDetails.isEmpty() || workOrderDetailService.saveBatch(newWorkOrderDetails))
                 && (newWorkOrders.isEmpty() || workOrderService.saveBatch(newWorkOrders))
                 && (stopWorkOrders.isEmpty() || workOrderService.updateBatchById(stopWorkOrders))
@@ -598,22 +609,24 @@ public class BizArchiveInputServiceImpl extends ServiceImpl<BizArchiveInputMappe
         List<BizWorkOrderRecord> records = workOrderRecordService.query().in("work_order_id", workOrders.stream().map(BizWorkOrder::getId).collect(Collectors.toList())).list();
         AtomicBoolean status = new AtomicBoolean(true);
         workOrders.forEach(l -> {
-            // 除了删除的工单明细之外的工单
-            l.setDetails(otherDetails.stream().filter(v -> v.getWorkOrderId().equals(l.getId())).collect(Collectors.toList()));
-            // 完成的部分
-            l.setRecords(records.stream().filter(v -> v.getWorkOrderId().equals(l.getId())).collect(Collectors.toList()));
-            if (l.getStartMonth() != null) {
-                // 余下明细的结束月
-                Integer monthNun = l.getDetails().stream().mapToInt(v -> v.getServiceNum() + v.getFreeNum()).sum();
-                DateTime startDate = DateTime.of(l.getStartMonth());
-                DateTime endDate = startDate.offsetNew(DateField.MONTH, monthNun - 1);
-                if (records.stream().noneMatch(v -> (v.getYear() + v.getMonth()).compareTo(endDate.toString("yyyyMM")) >= 0)) {
-                    status.set(false);
+            if (otherDetails.size() > 0 && records.size() > 0) {
+                // 除了删除的工单明细之外的工单
+                l.setDetails(otherDetails.stream().filter(v -> v.getWorkOrderId().equals(l.getId())).collect(Collectors.toList()));
+                // 完成的部分
+                l.setRecords(records.stream().filter(v -> v.getWorkOrderId().equals(l.getId())).collect(Collectors.toList()));
+                if (l.getStartMonth() != null) {
+                    // 余下明细的结束月
+                    Integer monthNun = l.getDetails().stream().mapToInt(v -> v.getServiceNum() + v.getFreeNum()).sum();
+                    DateTime startDate = DateTime.of(l.getStartMonth());
+                    DateTime endDate = startDate.offsetNew(DateField.MONTH, monthNun - 1);
+                    if (records.stream().noneMatch(v -> (v.getYear() + v.getMonth()).compareTo(endDate.toString("yyyyMM")) >= 0)) {
+                        status.set(false);
+                    } else {
+                        status.set(status.get());
+                    }
                 } else {
                     status.set(status.get());
                 }
-            } else {
-                status.set(status.get());
             }
         });
         return status.get();

+ 14 - 3
src/main/java/cn/ezhizao/project/business/workOrder/controller/WorkOrderServiceController.java

@@ -114,7 +114,6 @@ public class WorkOrderServiceController extends BaseController {
 
     @PreAuthorize("@ss.hasPermi('business:customer:service:loop:list')")
     @GetMapping("/list")
-
     public TableDataInfo list(BizWorkOrder bizWorkOrder) throws NoSuchFieldException, IllegalAccessException {
         setTenantId(bizWorkOrder);
         bizWorkOrder.setType(1);
@@ -155,13 +154,25 @@ public class WorkOrderServiceController extends BaseController {
         BizEntrust entrustConditions = new BizEntrust();
         entrustConditions.setWorkOrderIds(list.stream().map(BizWorkOrder::getId).collect(Collectors.toList()));
         entrustConditions.setCurrentYear(bizWorkOrder.getYear());
-        List<BizEntrust> entrusts = entrustService.getList(entrustConditions);
+        Map<Long, List<BizEntrust>> collect = entrustService.getList(entrustConditions).stream().collect(Collectors.groupingBy(BizEntrust::getCompanyId));
         list.forEach(v -> {
             v.setRecord(records.stream().filter(e -> e.getWorkOrderId().equals(v.getId())
                     && e.getMonth().equals(bizWorkOrder.getMonth())
                     && e.getFromId().equals(0L) &&
                     e.getYear().equals(bizWorkOrder.getYear())).findFirst().orElse(null));
-            v.setEntrust(entrusts.stream().filter(e -> e.getWorkOrderId().equals(v.getId())).findFirst().orElse(null));
+//            v.setEntrust(entrusts.stream().filter(e -> e.getWorkOrderId().equals(v.getId())).findFirst().orElse(null));
+            for (BizEntrust entrust : collect.get(v.getCompanyId())) {
+                String year = entrust.getWorkMonth().toLocalDate().getYear()+"";
+                int month = entrust.getWorkMonth().toLocalDate().getMonthValue();
+                String format = String.format("%02d", month);
+                if (bizWorkOrder.getYear().equals(year) && bizWorkOrder.getMonth().equals(format)){
+                    v.setEntrust(entrust);
+                    break;
+                }else {
+                    v.setEntrust(null);
+                }
+            }
+
             BizWorkOrderLoop loop = new BizWorkOrderLoop();
             loop.setCompanyName(v.getCompanyName());
             loop.setTaxType(v.getTaxType());

+ 1 - 1
src/main/resources/mybatis/business/BizWorkOrderMapper.xml

@@ -25,7 +25,7 @@
         left join sys_user t5 on t5.user_id = t1.service_id
         LEFT JOIN biz_archive_input_detail t6 ON t6.id = t1.contract_detail_id
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
-            t1.deleted = 0
+            t1.deleted = 0 and t6.from_id = 0
             <if test="id != null "> AND t1.id = #{id}</if>
             <if test="contractDetailId != null "> AND t1.contract_detail_id = #{contractDetailId}</if>
             <if test="tenantId != null "> AND t1.tenant_id = #{tenantId}</if>