ly 1 рік тому
батько
коміт
8bacbefa33

+ 37 - 6
src/main/java/cn/ezhizao/project/business/deduct/controller/BizDeductController.java

@@ -5,6 +5,7 @@ import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -39,9 +40,11 @@ import cn.ezhizao.project.business.workOrder.service.IBizWorkOrderService;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
@@ -189,6 +192,10 @@ public class BizDeductController extends BaseController {
     @GetMapping(value = "/gen")
     public AjaxResult genInfo(BizDeduct conditions) {
         // 获取主表
+        BizDeduct bizDeduct = this.abstractVoid(conditions);
+        return success(bizDeduct);
+    }
+    BizDeduct abstractVoid ( BizDeduct conditions){
         BizDeduct bizDeduct = new BizDeduct();
         bizDeduct.setEntrustOrderId(conditions.getEntrustOrderId());
         bizDeduct.setMonth(DateTime.of(conditions.getStartMonth()).toString("MM"));
@@ -201,7 +208,7 @@ public class BizDeductController extends BaseController {
         entrustCondition.setId(conditions.getEntrustOrderId());
         BizEntrustOrder bizEntrustOrder = bizEntrustOrderService.getList(entrustCondition).stream().findFirst().orElse(null);
         if (bizEntrustOrder == null) {
-            return error("委托单不存在");
+             new RuntimeException("委托单不存在");
         }
         // 结算订单号
         bizDeduct.setFormNo(bizEntrustOrder.getFormNo());
@@ -236,7 +243,8 @@ public class BizDeductController extends BaseController {
         BizHousingFundConfirmDetail housingFundCondition = new BizHousingFundConfirmDetail();
         housingFundCondition.setStartMonth(DateTime.of(conditions.getStartMonth()).toSqlDate());
         housingFundCondition.setEndMonth(DateTime.of(conditions.getEndMonth()).toSqlDate());
-        List<BizHousingFundConfirmDetail> housingFundConfirmDetails = bizHousingFundConfirmDetailService.getListByBean(housingFundCondition);
+//        List<BizHousingFundConfirmDetail> housingFundConfirmDetails = bizHousingFundConfirmDetailService.getListByBean(housingFundCondition);
+        List<BizHousingFundConfirmDetail> housingFundConfirmDetails = bizHousingFundConfirmDetailService.getListByBean2(housingFundCondition);
         BizSocialSecurityConfirmDetail socialSecurityConditions = new BizSocialSecurityConfirmDetail();
         socialSecurityConditions.setStartMonth(DateTime.of(conditions.getStartMonth()).toSqlDate());
         socialSecurityConditions.setEndMonth(DateTime.of(conditions.getEndMonth()).toSqlDate());
@@ -326,7 +334,15 @@ public class BizDeductController extends BaseController {
                 onceList.add(item);
             }
         });
-
+        Map<Long, List<BizCompany>> company = companyService.list(new LambdaQueryWrapper<BizCompany>().eq(BizCompany::getIsZero, 1)).stream().collect(Collectors.groupingBy(BizCompany::getId));
+        for (BizStatementAccountLoop bizStatementAccountLoop : loops) {
+            List<BizCompany> bizCompanyList = company.get(bizStatementAccountLoop.getCompanyId());
+            if (!CollectionUtils.isEmpty(bizCompanyList)){
+                bizStatementAccountLoop.setIsZero(bizCompanyList.get(0).getIsZero());
+            }else {
+                bizStatementAccountLoop.setIsZero(0);
+            }
+        }
         // 获取汇总
         List<BizStatementAccount> accounts;
         accounts = getStatementAccount(onceList, loops, bizDeduct);
@@ -339,9 +355,8 @@ public class BizDeductController extends BaseController {
         bizDeduct.setAmount(deduct);
         // 本期余额
         bizDeduct.setRemainAmount(bizDeduct.getPrevRemainAmount().subtract(deduct));
-        return success(bizDeduct);
+        return bizDeduct;
     }
-
     private List<BizStatementAccount> getStatementAccount(List<BizStatementAccountOnce> onceList, List<BizStatementAccountLoop> loops, BizDeduct bizDeduct) {
         List<BizStatementAccount> accounts = new ArrayList<>();
         BizEntrustPrice priceCondition = new BizEntrustPrice();
@@ -442,9 +457,25 @@ public class BizDeductController extends BaseController {
     }
 
     private void addStatementAccountByAnnualIncome(List<BizStatementAccountLoop> loop, List<BizStatementAccount> accounts, BizDeduct deduct, List<BizEntrustPrice> prices) {
+        //零申报
+
+        String zeroAnnualIncome = "零申报";
+        List<BizStatementAccountLoop> zeroZero = loop.stream().filter(v -> 1 == v.getIsZero()).collect(Collectors.toList());
+        BizStatementAccount zeroDeclaration = new BizStatementAccount();
+        zeroDeclaration.setTaskType("代理记账");
+        zeroDeclaration.setAnnualIncome(zeroAnnualIncome);
+        zeroDeclaration.setCompanyNum(zeroZero.size());
+        BizEntrustPrice zeroPrice = prices.stream().filter(v -> v.getIsZero() == 1).findFirst().orElse(null);
+        zeroDeclaration.setPrice(zeroPrice != null ? zeroPrice.getPrice() : BigDecimal.ZERO);
+        zeroDeclaration.setAmount(zeroDeclaration.getPrice().multiply(BigDecimal.valueOf(zeroDeclaration.getCompanyNum())));
+        zeroDeclaration.setActuallyAmount(zeroDeclaration.getAmount());
+        zeroDeclaration.setYear(deduct.getYear());
+        zeroDeclaration.setMonth(deduct.getMonth());
+        accounts.add(zeroDeclaration);
+
         // 年收入0
         String annualIncome = "0";
-        List<BizStatementAccountLoop> zero = loop.stream().filter(v -> v.getActuallyAnnualIncome().equals(annualIncome)).collect(Collectors.toList());
+        List<BizStatementAccountLoop> zero = loop.stream().filter(v -> v.getActuallyAnnualIncome().equals(annualIncome) && v.getIsZero() != 1).collect(Collectors.toList());
         BizStatementAccount first = new BizStatementAccount();
         first.setTaskType("代理记账");
         first.setAnnualIncome(annualIncome);

+ 1 - 0
src/main/java/cn/ezhizao/project/business/entrustPrice/domain/BizEntrustPrice.java

@@ -99,4 +99,5 @@ public class BizEntrustPrice extends BaseEntity
     @TableField(exist = false)
     private String taskTypeDetailName;
 
+    private Integer isZero;
 }

+ 1 - 0
src/main/java/cn/ezhizao/project/business/housingFund/mapper/BizHousingFundConfirmDetailMapper.java

@@ -38,6 +38,7 @@ public interface BizHousingFundConfirmDetailMapper extends BaseMapper<BizHousing
     int getTotal(Map<String, Object> conditions);
 
 
+    List<BizHousingFundConfirmDetail> getList3(BizHousingFundConfirmDetail financialHousingFundConfirmDetail);
 }
 
 

+ 1 - 0
src/main/java/cn/ezhizao/project/business/housingFund/service/IBizHousingFundConfirmDetailService.java

@@ -36,4 +36,5 @@ public interface IBizHousingFundConfirmDetailService extends IService<BizHousing
      */
     int getTotal(Map<String, Object> conditions);
 
+    List<BizHousingFundConfirmDetail> getListByBean2(BizHousingFundConfirmDetail financialHousingFundConfirmDetail);
 }

+ 6 - 1
src/main/java/cn/ezhizao/project/business/housingFund/service/impl/BizHousingFundConfirmDetailServiceImpl.java

@@ -40,7 +40,12 @@ public class BizHousingFundConfirmDetailServiceImpl extends ServiceImpl<BizHousi
     public int getTotal(Map<String,Object> conditions) {
         return financialHousingFundConfirmDetailDao.getTotal(conditions);
     }
-    
+
+    @Override
+    public List<BizHousingFundConfirmDetail> getListByBean2(BizHousingFundConfirmDetail financialHousingFundConfirmDetail) {
+         return financialHousingFundConfirmDetailDao.getList3(financialHousingFundConfirmDetail);
+    }
+
     @Override
     @Transactional
     public boolean save(BizHousingFundConfirmDetail entity) {

+ 3 - 0
src/main/java/cn/ezhizao/project/business/statementAccount/domain/BizStatementAccountLoop.java

@@ -133,4 +133,7 @@ public class BizStatementAccountLoop extends BaseEntity
 
     @ApiModelProperty(value = "工作月")
     private Date workMonth;
+
+    @TableField(exist = false)
+    private Integer isZero;
 }

+ 7 - 4
src/main/java/cn/ezhizao/project/business/workOrder/controller/WorkOrderCurrentController.java

@@ -353,10 +353,11 @@ public class WorkOrderCurrentController extends BaseController {
 
         // 获取上月的委托
         List<BizEntrust> entrusts = bizEntrustService.query().eq("tenant_id", getTenantId()).eq("work_month", nextMonthDate.toSqlDate()).list();
-        List<BizEntrust> entr = entrusts;
+        List<BizEntrust> entr = new ArrayList<>(entrusts) ;
         //将到截至月的委托去掉
         for (BizEntrust b : entr) {
-            List<BizWorkOrder> workOrder = bizWorkOrderService.query().eq("id", b.getWorkOrderId()).eq("is_stop", 0).list();
+            List<BizWorkOrder> workOrder = bizWorkOrderService.query().eq("id", b.getWorkOrderId()).list();
+
             Calendar calendar = Calendar.getInstance();
             // 设置年份
             calendar.set(Calendar.YEAR, Integer.parseInt(months.get(0).getYear()));
@@ -365,8 +366,10 @@ public class WorkOrderCurrentController extends BaseController {
             // 设置日期
             calendar.set(Calendar.DAY_OF_MONTH, 1);
             Date currentMonthDate = new java.sql.Date(calendar.getTime().getTime());
-            if (!workOrder.isEmpty() && currentMonthDate == workOrder.get(0).getEndMonth()) {
-                entrusts.removeIf(s -> s.getWorkOrderId().equals(b.getWorkOrderId()));
+            if (!workOrder.isEmpty()) {
+                if(workOrder.get(0).getIsStop() == 1 || (currentMonthDate == workOrder.get(0).getEndMonth())){
+                    entrusts.removeIf(s -> s.getWorkOrderId().equals(b.getWorkOrderId()));
+                }
             }
         }
         entrusts.forEach(l -> {

+ 7 - 2
src/main/resources/mybatis/business/BizHousingFundConfirmDetailMapper.xml

@@ -6,7 +6,9 @@
         <id column="id" jdbcType="BIGINT" property="id"/>
         <collection property="details" select="getEmployees" column="id" />
     </resultMap>
-
+    <resultMap id="BaseResultMap2" type="cn.ezhizao.project.business.housingFund.domain.BizHousingFundConfirmDetail">
+        <id column="id" jdbcType="BIGINT" property="id"/>
+    </resultMap>
     <resultMap id="EmployeeResult" type="cn.ezhizao.project.business.housingFund.domain.BizHousingFundConfirmDetailEmployee">
         <id column="id" jdbcType="INTEGER" property="id"/>
     </resultMap>
@@ -20,12 +22,15 @@
     <select id="getList" resultMap="BaseResultMap">
         <include refid="getListSql"/>
     </select>
-
+    <select id="getList3" resultMap="BaseResultMap2">
+        <include refid="getListSql"/>
+    </select>
     <!--带条件的List查询 数据总条数-->
     <select id="getTotal" resultType="java.lang.Integer">
         SELECT COUNT(1) FROM (<include refid="getListSql"/>) AS C
     </select>
 
+
     <sql id="getListSql">
         SELECT t1.*, t2.name as company_name, t2.is_first_housing_fund
         , t2.is_pay_on_window, t2.housing_fund_password

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

@@ -10,7 +10,7 @@
     <resultMap id="BaseResultMap2"
                type="cn.ezhizao.project.business.socialSecurity.domain.BizSocialSecurityConfirmDetail">
         <id column="id" jdbcType="BIGINT" property="id"/>
-        <collection property="details" select="getEmployees" column="id" />
+
     </resultMap>
     <resultMap id="EmployeeResult" type="cn.ezhizao.project.business.socialSecurity.domain.BizSocialSecurityConfirmDetailEmployee">
         <id column="id" jdbcType="INTEGER" property="id"/>