|
@@ -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);
|