2
0
ljx 4 жил өмнө
parent
commit
859b03990d

+ 69 - 0
src/main/java/com/imed/costaccount/model/AfterCostGroup.java

@@ -0,0 +1,69 @@
+package com.imed.costaccount.model;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author 李加喜
+ * @Package com.imed.costaccount.model
+ * @date 2021-08-18 9:14
+ */
+@Data
+@ApiModel("成本数据归集数据")
+public class AfterCostGroup implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 科室编码
+     */
+    private String departmentCode;
+    /**
+     * 科室比例
+     */
+    private String departmentName;
+
+    /**
+     * 其他责任中心代码
+     */
+    private String otherResponsibilityCode;
+    /**
+     * 其他责任中心名称
+     */
+    private String otherResponsibilityName;
+    /**
+     * 金额
+     */
+    private BigDecimal amount;
+    /**
+     * 责任中心代码
+     */
+    private String responsibilityCode;
+    /**
+     * 责任中心名称
+     */
+    private String responsibilityName;
+    /**
+     *  成本项目代码
+     */
+    private String productCode;
+    /**
+     *  成本项目名称
+     */
+    private String productName;
+    /**
+     * 会计科目代码
+     */
+    private String accountCode;
+    /**
+     * 会计科目名称
+     */
+    private String accountName;
+    /**
+     * 是直接还是间接 1直接 2 间接
+     */
+    private Integer directStatus = 1;
+}

+ 2 - 2
src/main/java/com/imed/costaccount/model/AfterIncomegroup.java → src/main/java/com/imed/costaccount/model/AfterIncomeGroup.java

@@ -12,8 +12,8 @@ import java.math.BigDecimal;
  * @date 2021-08-10 19:56
  */
 @Data
-@ApiModel("归集数据标记")
-public class AfterIncomegroup implements Serializable {
+@ApiModel("收入数据归集数据标记")
+public class AfterIncomeGroup implements Serializable {
 
     private static final long serialVersionUID = 1L;
 

+ 1 - 1
src/main/java/com/imed/costaccount/model/CostCostingGroup.java

@@ -85,7 +85,7 @@ public class CostCostingGroup implements Serializable {
 	/**
 	 * 统计数据
 	 */
-	private String afterIncomeGroup;
+	private String afterCostGroup;
 	/**
 	 * 年份
 	 */

+ 39 - 12
src/main/java/com/imed/costaccount/service/impl/CostCostingGroupServiceImpl.java

@@ -6,10 +6,7 @@ import com.alibaba.druid.util.StringUtils;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.imed.costaccount.common.exception.CostException;
-import com.imed.costaccount.common.util.BeanUtil;
-import com.imed.costaccount.common.util.DateUtils;
-import com.imed.costaccount.common.util.Result;
-import com.imed.costaccount.common.util.UserContext;
+import com.imed.costaccount.common.util.*;
 import com.imed.costaccount.constants.NumberConstant;
 import com.imed.costaccount.enums.DateStyleEnum;
 import com.imed.costaccount.mapper.CostCostingGroupMapper;
@@ -18,6 +15,7 @@ import com.imed.costaccount.model.vo.IncomeErrorMessage;
 import com.imed.costaccount.service.AccountingProductService;
 import com.imed.costaccount.service.CostCostingGroupService;
 import com.imed.costaccount.service.CostIncomeFileService;
+import com.imed.costaccount.service.ResponsibilityService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -39,10 +37,13 @@ public class CostCostingGroupServiceImpl extends ServiceImpl<CostCostingGroupMap
 
     private final CostIncomeFileService costIncomeFileService;
 
-    public CostCostingGroupServiceImpl(CostIncomeGroupServiceImpl costIncomeGroupService, AccountingProductService accountingProductService, CostIncomeFileService costIncomeFileService) {
+    private final ResponsibilityService responsibilityService;
+
+    public CostCostingGroupServiceImpl(CostIncomeGroupServiceImpl costIncomeGroupService, AccountingProductService accountingProductService, CostIncomeFileService costIncomeFileService, ResponsibilityService responsibilityService) {
         this.costIncomeGroupService = costIncomeGroupService;
         this.accountingProductService = accountingProductService;
         this.costIncomeFileService = costIncomeFileService;
+        this.responsibilityService = responsibilityService;
     }
 
 
@@ -177,7 +178,8 @@ public class CostCostingGroupServiceImpl extends ServiceImpl<CostCostingGroupMap
                 }
             }
             if (CollectionUtils.isEmpty(incomeErrorMessageList)){
-                Integer emptyStatus = 0;
+                incomeErrorMessageList=new ArrayList<>();
+                int emptyStatus = 0;
                 for (int j = 2; j < data.size()-1 ; j++) {
                     BigDecimal parseInt = new BigDecimal (data.get(j).toString());
                     if (!BigDecimal.ZERO.equals(parseInt)) {
@@ -190,16 +192,22 @@ public class CostCostingGroupServiceImpl extends ServiceImpl<CostCostingGroupMap
                 String productCode = data.get(0).toString();
                 String productName = data.get(1).toString();
                 Product product = productMap.get(productCode + productName);
+                AfterCostGroup afterCostGroupRequest = new AfterCostGroup();
                 if (Objects.nonNull(product)) {
                     Long id = product.getId();
                     Long accountTingId = accountProMap.get(id);
                     if (Objects.nonNull(accountTingId)) {
                         Accounting accounting = accountingMap.get(accountTingId);
                         if (Objects.nonNull(accounting)) {
+
                             costCostingGroupRequest.setProductCode(productCode);
                             costCostingGroupRequest.setProductName(productName);
                             costCostingGroupRequest.setAccountCode(accounting.getAccountingCode());
                             costCostingGroupRequest.setAccountName(accounting.getAccountingName());
+                            afterCostGroupRequest.setProductCode(productCode);
+                            afterCostGroupRequest.setProductName(productName);
+                            afterCostGroupRequest.setAccountCode(accounting.getAccountingCode());
+                            afterCostGroupRequest.setAccountName(accounting.getAccountingName());
                         } else {
                             IncomeErrorMessage incomeErrorMessage = new IncomeErrorMessage();
                             incomeErrorMessage.setTotal(1);
@@ -221,22 +229,35 @@ public class CostCostingGroupServiceImpl extends ServiceImpl<CostCostingGroupMap
                 // 0表示全为0 1表示不全为0
 
                 BigDecimal combined = new BigDecimal (data.get(data.size() - 1).toString());
-                if (NumberConstant.ZERO.equals(emptyStatus) &&BigDecimal.ZERO.equals(combined)) {
-                    // 全为0
-                } else if (!BigDecimal.ZERO.equals(combined) && NumberConstant.ZERO.equals(emptyStatus)) {
+                if (!BigDecimal.ZERO.equals(combined) && NumberConstant.ZERO.equals(emptyStatus)) {
                     // 这条数据是保存到其他责任中心的
                     CostCostingGroup costCostingGroup = costCostingGroupRequest;
+                    AfterCostGroup afterCostGroup = BeanUtil.convertObj(afterCostGroupRequest,AfterCostGroup.class);
                     // TODO 设置其他责任中心
-                    costCostingGroup.setResponsibilityCode("其他责任中心的Code");
-                    costCostingGroup.setResponsibilityName("其他责任中心的Name");
+                    Responsibility responsibilityServiceOne = responsibilityService.getOne(new QueryWrapper<Responsibility>().lambda().eq(Responsibility::getHospId, UserContext.getHospId()).eq(Responsibility::getIsDefault, NumberConstant.ONE));
+                    if (Objects.nonNull(responsibilityServiceOne)){
+                        costCostingGroup.setResponsibilityCode(responsibilityServiceOne.getResponsibilityCode());
+                        costCostingGroup.setResponsibilityName(responsibilityServiceOne.getResponsibilityName());
+                        // 设置统计数据
+                        afterCostGroup.setOtherResponsibilityCode(responsibilityServiceOne.getResponsibilityCode());
+                        afterCostGroup.setOtherResponsibilityName(responsibilityServiceOne.getResponsibilityName());
+                    }
+                    costCostingGroup.setProductCode(costCostingGroupRequest.getProductCode());
+                    costCostingGroup.setProductName(costCostingGroupRequest.getProductName());
+                    costCostingGroup.setAccountCode(costCostingGroupRequest.getAccountCode());
+                    costCostingGroup.setAccountName(costCostingGroupRequest.getAccountName());
                     costCostingGroup.setAmount(combined);
                     costCostingGroup.setHospId(UserContext.getHospId());
                     costCostingGroup.setCreateTime(System.currentTimeMillis());
                     costCostingGroup.setDateYear(year);
                     costCostingGroup.setDateMonth(month);
+                    afterCostGroup.setAmount(combined);
+                    String s = JsonUtil.toJSONString(afterCostGroup);
+                    costCostingGroup.setAfterCostGroup(s);
                     costCostingGroupArrayList.add(costCostingGroup);
                 } else {
                     for (int j = 2; j < data.size() - 1; j++) {
+                        AfterCostGroup afterCostGroup = BeanUtil.convertObj(afterCostGroupRequest,AfterCostGroup.class);
                         CostCostingGroup costCostingGroup = BeanUtil.convertObj(costCostingGroupRequest,CostCostingGroup.class);
                         // 检验科室信息是否准确
                         String departmentCode = departmentCodes.get(j).toString();
@@ -253,7 +274,10 @@ public class CostCostingGroupServiceImpl extends ServiceImpl<CostCostingGroupMap
                                     costCostingGroup.setDepartmentName(departmentName);
                                     costCostingGroup.setResponsibilityCode(responsibility.getResponsibilityCode());
                                     costCostingGroup.setResponsibilityName(responsibility.getResponsibilityName());
-
+                                    afterCostGroup.setResponsibilityCode(responsibility.getResponsibilityCode());
+                                    afterCostGroup.setResponsibilityName(responsibility.getResponsibilityName());
+                                    afterCostGroup.setDepartmentCode(departmentCode);
+                                    afterCostGroup.setDepartmentName(departmentName);
                                 } else {
                                     IncomeErrorMessage incomeErrorMessage = new IncomeErrorMessage();
                                     incomeErrorMessage.setTotal(j);
@@ -277,6 +301,9 @@ public class CostCostingGroupServiceImpl extends ServiceImpl<CostCostingGroupMap
                         costCostingGroup.setCreateTime(System.currentTimeMillis());
                         costCostingGroup.setDateYear(year);
                         costCostingGroup.setDateMonth(month);
+                        afterCostGroup.setAmount(new BigDecimal((Objects.isNull(data.get(j)) || "0".equals(data.get(j).toString())) ? "0.00" : data.get(j).toString()));
+                        String s = JsonUtil.toJSONString(afterCostGroup);
+                        costCostingGroup.setAfterCostGroup(s);
                         costCostingGroupArrayList.add(costCostingGroup);
                     }
                 }

+ 3 - 3
src/main/java/com/imed/costaccount/service/impl/CostIncomeGroupServiceImpl.java

@@ -103,7 +103,7 @@ public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMappe
         if (CollectionUtils.isEmpty(costIncomeGroupBeforeVOList)) {
             PageUtils pageUtils = new PageUtils(pages);
             pageUtils.setList(null);
-            pageUtils.setTotalAmount(new BigDecimal(0.0000));
+            pageUtils.setTotalAmount(new BigDecimal("0.0000"));
             return pageUtils;
         }
         // 进行金额合并
@@ -316,7 +316,7 @@ public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMappe
         for (int i = 0; i < list.size(); i++) {
             int row = i + 5;
             CostIncomeGroup costIncomeGroup = new CostIncomeGroup();
-            AfterIncomegroup afterIncomegroup = new AfterIncomegroup();
+            AfterIncomeGroup afterIncomegroup = new AfterIncomeGroup();
             // 用来检验数据合理性的循环
 
             List<Object> data = list.get(i);
@@ -474,7 +474,7 @@ public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMappe
      * @param afterIncomegroup
      * @param beforeMoney
      */
-    private void getAfterData(Long hospId, CostIncomeGroup costIncomeGroup, AfterIncomegroup afterIncomegroup, BigDecimal beforeMoney) {
+    private void getAfterData(Long hospId, CostIncomeGroup costIncomeGroup, AfterIncomeGroup afterIncomegroup, BigDecimal beforeMoney) {
         Integer openDepartmentStatus = afterIncomegroup.getOpenDepartmentStatus();
         Integer startDepartmentStatus = afterIncomegroup.getStartDepartmentStatus();
         if (Objects.nonNull(openDepartmentStatus) && Objects.nonNull(startDepartmentStatus)) {

+ 1 - 3
src/main/java/com/imed/costaccount/service/impl/IncomeCollectionServiceImpl.java

@@ -5,7 +5,6 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 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 com.imed.costaccount.common.exception.CostException;
 import com.imed.costaccount.common.util.BeanUtil;
@@ -26,7 +25,6 @@ import org.springframework.transaction.annotation.Transactional;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 import static com.imed.costaccount.common.constants.Constant.LIMIT;
 
@@ -138,7 +136,7 @@ public class IncomeCollectionServiceImpl
                     incomeCollection.setFileId(costIncomeGroup.getFileId());
                     incomeCollection.setCreateTime(System.currentTimeMillis());
                     String afterIncomeGroupStr = costIncomeGroup.getAfterIncomeGroup();
-                    AfterIncomegroup afterIncomegroup = JSONUtil.toBean(afterIncomeGroupStr, AfterIncomegroup.class);
+                    AfterIncomeGroup afterIncomegroup = JSONUtil.toBean(afterIncomeGroupStr, AfterIncomeGroup.class);
                     if (Objects.isNull(afterIncomegroup)) {
                         throw new CostException("未能正确归集对应的....");
                     }

+ 6 - 8
src/main/java/com/imed/costaccount/service/impl/ShareParamValueServiceImpl.java

@@ -2,15 +2,12 @@ package com.imed.costaccount.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateTime;
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.druid.util.StringUtils;
 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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.imed.costaccount.common.exception.CostException;
 import com.imed.costaccount.common.util.*;
 import com.imed.costaccount.constants.NumberConstant;
@@ -163,7 +160,7 @@ public class ShareParamValueServiceImpl extends ServiceImpl<ShareParamValueMappe
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
     public void copyData(CopyShareParamValueDTO copyShareParamValueDTO, Long hospId) {
-        // 复制数据 多个医院同时使用的情况下启用线程池处理
+        // TODO 复制数据 多个医院同时使用的情况下启用线程池处理
         String fromDate = copyShareParamValueDTO.getFromDate();
         String toDate = copyShareParamValueDTO.getToDate();
         Integer dataSourceType = copyShareParamValueDTO.getDataSourceType();
@@ -330,14 +327,14 @@ public class ShareParamValueServiceImpl extends ServiceImpl<ShareParamValueMappe
             List<Object> data = list.get(i);
             // 检验成本分摊参数是否正确
             ShareParamValue shareParamValueRequest = new ShareParamValue();
-            String shareParamCode = data.get(0).toString();
-            String shareParamName = data.get(1).toString();
+            String shareParamCode = data.get(0).toString().trim();
+            String shareParamName = data.get(1).toString().trim();
             CostShareParam costShareParam = shareParamMap.get(shareParamCode + shareParamName);
             if (Objects.nonNull(costShareParam)) {
                 shareParamValueRequest.setShareParamCode(shareParamCode);
             } else {
                 IncomeErrorMessage incomeErrorMessage = new IncomeErrorMessage();
-                incomeErrorMessage.setTotal(1);
+                incomeErrorMessage.setTotal(i);
                 incomeErrorMessage.setErrMessage("成本分摊代码:" + shareParamCode + " 名称" + shareParamName + "不存在");
                 incomeErrorMessageList.add(incomeErrorMessage);
             }
@@ -359,8 +356,9 @@ public class ShareParamValueServiceImpl extends ServiceImpl<ShareParamValueMappe
                 }
             }
             if (CollectionUtils.isEmpty(incomeErrorMessageList)) {
+                incomeErrorMessageList=new ArrayList<>();
                 // 检验数据是否全为0
-                Integer zeroStatus = 0;
+                int zeroStatus = 0;
                 for (int j = 2; j < data.size(); j++) {
                     if (!NumberConstant.ZERO.equals(data.get(j))) {
                         zeroStatus = 1;

+ 1 - 1
src/main/resources/mapper/CostCostingGroupMapper.xml

@@ -19,7 +19,7 @@
         <result property="amount" column="amount"/>
         <result property="hospId" column="hosp_id"/>
         <result property="fileId" column="file_id"/>
-        <result property="afterIncomeGroup" column="after_income_group"/>
+        <result property="afterCostGroup" column="after_cost_group"/>
         <result property="dateYear" column="date_year"/>
         <result property="dateMonth" column="date_month"/>
         <result property="createTime" column="create_time"/>