浏览代码

修改收集归集表

ljx 4 年之前
父节点
当前提交
636ac7bd38

+ 1 - 0
src/main/java/com/imed/costaccount/enums/ErrorCodeEnum.java

@@ -7,6 +7,7 @@ public enum ErrorCodeEnum {
     USER_NOT_LOGIN(401, "用户未登录"),
     USER_NOT_LOGIN(401, "用户未登录"),
     NO_PERMISSION(403, "权限不足"),
     NO_PERMISSION(403, "权限不足"),
     RESPONSIBILITY_CODE_EXIST(500, "责任中心代码重复"),
     RESPONSIBILITY_CODE_EXIST(500, "责任中心代码重复"),
+    FILE_UPLOAD_ERROR(500, "文件上传失败"),
     ;
     ;
 
 
     private Integer code;
     private Integer code;

+ 52 - 6
src/main/java/com/imed/costaccount/model/CostIncomeGroup.java

@@ -1,7 +1,6 @@
 package com.imed.costaccount.model;
 package com.imed.costaccount.model;
 
 
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;
@@ -16,7 +15,7 @@ import java.math.BigDecimal;
  * 
  * 
  * @author KCYG
  * @author KCYG
  * @email KCYG@xinxicom
  * @email KCYG@xinxicom
- * @date 2021-08-03 16:15:20
+ * @date 2021-08-10 09:54:43
  */
  */
 @Data
 @Data
 @Accessors(chain = true)
 @Accessors(chain = true)
@@ -51,20 +50,24 @@ public class CostIncomeGroup implements Serializable {
 	 * 成本项目的Code
 	 * 成本项目的Code
 	 */
 	 */
 	private String productCode;
 	private String productCode;
+	/**
+	 * 成本项目的名称
+	 */
+	private String productName;
 	/**
 	/**
 	 * 会计科目Code
 	 * 会计科目Code
 	 */
 	 */
 	private String accountCode;
 	private String accountCode;
 	/**
 	/**
-	 * 是否直接收入
+	 * 会计科目名称
 	 */
 	 */
-	private Integer isIncome;
+	private String accountName;
 	/**
 	/**
 	 * 开单科室收到的钱
 	 * 开单科室收到的钱
 	 */
 	 */
 	private BigDecimal openDepartmentAmount;
 	private BigDecimal openDepartmentAmount;
 	/**
 	/**
-	 * 执行科室收到的钱
+	 * 执行科室的钱
 	 */
 	 */
 	private BigDecimal startDepartmentAmount;
 	private BigDecimal startDepartmentAmount;
 	/**
 	/**
@@ -75,6 +78,50 @@ public class CostIncomeGroup implements Serializable {
 	 * 归属医院id
 	 * 归属医院id
 	 */
 	 */
 	private Long hospId;
 	private Long hospId;
+	/**
+	 * 文件id
+	 */
+	private Long fileId;
+	/**
+	 * 文件编号
+	 */
+	private Long doctorNumber;
+	/**
+	 * 开单医生名称
+	 */
+	private String doctorName;
+	/**
+	 * 患者ID
+	 */
+	private Long patientId;
+	/**
+	 * 住院号
+	 */
+	private Long outpatientId;
+	/**
+	 * 患者姓名
+	 */
+	private String patientName;
+	/**
+	 * 病人费别
+	 */
+	private String patientFee;
+	/**
+	 * 收据费别
+	 */
+	private String receiptFee;
+	/**
+	 * 数量
+	 */
+	private Integer totalNumber;
+	/**
+	 * 单位
+	 */
+	private String unit;
+	/**
+	 * 费用发生时间
+	 */
+	private Integer feeDatetime;
 	/**
 	/**
 	 * 年份
 	 * 年份
 	 */
 	 */
@@ -90,7 +137,6 @@ public class CostIncomeGroup implements Serializable {
 	/**
 	/**
 	 * 删除时间,如果存在表示已删除13位时间戳
 	 * 删除时间,如果存在表示已删除13位时间戳
 	 */
 	 */
-	@TableLogic(value = "0",delval = "UNIX_TIMESTAMP(NOW()) * 1000")
 	private Long deleteTime;
 	private Long deleteTime;
 
 
 }
 }

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.imed.costaccount.common.util.PageUtils;
 import com.imed.costaccount.common.util.PageUtils;
 import com.imed.costaccount.common.util.Result;
 import com.imed.costaccount.common.util.Result;
 import com.imed.costaccount.model.CostIncomeGroup;
 import com.imed.costaccount.model.CostIncomeGroup;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -31,8 +32,9 @@ public interface CostIncomeGroupService extends IService<CostIncomeGroup> {
      * 批量导入收入数据
      * 批量导入收入数据
      * @param read
      * @param read
      * @param hospId
      * @param hospId
+     * @param file
      * @return
      * @return
      */
      */
-    Result importIncomeGroup(List<List<Object>> read, Long hospId);
+    Result importIncomeGroup(List<List<Object>> read, Long hospId, MultipartFile file);
 }
 }
 
 

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

@@ -5,11 +5,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.imed.costaccount.common.exception.CostException;
 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.PageUtils;
-import com.imed.costaccount.common.util.Result;
+import com.imed.costaccount.common.util.*;
 import com.imed.costaccount.constants.NumberConstant;
 import com.imed.costaccount.constants.NumberConstant;
+import com.imed.costaccount.enums.ErrorCodeEnum;
 import com.imed.costaccount.mapper.CostIncomeGroupMapper;
 import com.imed.costaccount.mapper.CostIncomeGroupMapper;
 import com.imed.costaccount.model.*;
 import com.imed.costaccount.model.*;
 import com.imed.costaccount.model.vo.CostIncomeGroupAllAmountVO;
 import com.imed.costaccount.model.vo.CostIncomeGroupAllAmountVO;
@@ -17,11 +15,15 @@ import com.imed.costaccount.model.vo.CostIncomeGroupBeforeVO;
 import com.imed.costaccount.model.vo.IncomeErrorMessage;
 import com.imed.costaccount.model.vo.IncomeErrorMessage;
 import com.imed.costaccount.service.*;
 import com.imed.costaccount.service.*;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
 
 
+import java.io.File;
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -30,6 +32,12 @@ import java.util.stream.Collectors;
 @Service("costIncomeGroupService")
 @Service("costIncomeGroupService")
 public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMapper, CostIncomeGroup> implements CostIncomeGroupService {
 public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMapper, CostIncomeGroup> implements CostIncomeGroupService {
 
 
+    @Value("${file.serverPath}")
+    private String fileTempPath;
+
+    @Value("${file.serverUrl}")
+    private String FILE_PATH;
+
     private final DepartmentService departmentService;
     private final DepartmentService departmentService;
 
 
     private final ResponsibilityService responsibilityService;
     private final ResponsibilityService responsibilityService;
@@ -105,11 +113,12 @@ public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMappe
      *
      *
      * @param list   输入的文件
      * @param list   输入的文件
      * @param hospId 医院Id
      * @param hospId 医院Id
+     * @param file
      * @return
      * @return
      */
      */
     @Override
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    public Result importIncomeGroup(List<List<Object>> list, Long hospId) {
+    public Result importIncomeGroup(List<List<Object>> list, Long hospId, MultipartFile file) {
         // 移除前几行的抬头内容  list的大小对应的就是行数的大小
         // 移除前几行的抬头内容  list的大小对应的就是行数的大小
         for (int i = list.size() - 1; i >= 0; i--) {
         for (int i = list.size() - 1; i >= 0; i--) {
             if (i == NumberConstant.ZERO || i == NumberConstant.ONE || i == NumberConstant.TWO || i == NumberConstant.THREE) {
             if (i == NumberConstant.ZERO || i == NumberConstant.ONE || i == NumberConstant.TWO || i == NumberConstant.THREE) {
@@ -140,7 +149,8 @@ public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMappe
 
 
         if (!CollectionUtils.isEmpty(incomeErrorMessageList)) {
         if (!CollectionUtils.isEmpty(incomeErrorMessageList)) {
             // 说明存在错误数据
             // 说明存在错误数据
-            // TODO 不讲数据保存在收入归集表里面  直将信息保存在提交记录里面
+            // TODO 不把数据保存在收入归集表里面  直将信息保存在提交记录里面
+
         } else {
         } else {
             // 实现数据的存储
             // 实现数据的存储
             for (int i = 0; i < list.size(); i++) {
             for (int i = 0; i < list.size(); i++) {
@@ -152,9 +162,12 @@ public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMappe
                 String openDepartmentCode = data.get(3).toString();
                 String openDepartmentCode = data.get(3).toString();
                 String startDepartmentCode = data.get(5).toString();
                 String startDepartmentCode = data.get(5).toString();
                 String beforeMoney = data.get(6).toString();
                 String beforeMoney = data.get(6).toString();
-//                if ()
             }
             }
         }
         }
+        String uploadFile = uploadFile(file, UserContext.getCurrentUser());
+        if (StrUtil.isNotBlank(uploadFile)){
+            // 文件上传成功  将文件记录保存
+        }
         return Result.ok();
         return Result.ok();
     }
     }
 
 
@@ -292,7 +305,24 @@ public class CostIncomeGroupServiceImpl extends ServiceImpl<CostIncomeGroupMappe
         });
         });
     }
     }
     /**
     /**
-     * 收入数据导入
+     * 文件上传
      */
      */
-
+    public String uploadFile(MultipartFile file, User user) {
+        Long hospId = user.getHospId();
+        String fileName = file.getOriginalFilename();
+        String localFilePath = fileTempPath + StrUtil.SLASH + hospId + StrUtil.SLASH;
+        File tempFile = new File(localFilePath);
+        if (!tempFile.exists()) {
+            tempFile.mkdirs();
+        }
+        localFilePath = localFilePath + fileName;
+        try {
+            file.transferTo(new File(localFilePath));
+        } catch (IOException e) {
+            log.error("【文件上传至本地】失败,绝对路径:{}", e.getMessage());
+            throw new CostException(ErrorCodeEnum.FILE_UPLOAD_ERROR);
+        } finally {
+        }
+        return FILE_PATH + hospId + StrUtil.SLASH + fileName;
+    }
 }
 }

+ 4 - 1
src/main/java/com/imed/costaccount/web/ExcelController.java

@@ -423,6 +423,9 @@ public class ExcelController {
     @PostMapping("/importDataByFileType")
     @PostMapping("/importDataByFileType")
     @ApiOperation("批量导入指定类型数据信息")
     @ApiOperation("批量导入指定类型数据信息")
     public Result importProductAccount(@RequestParam("file") MultipartFile file,Integer fileType){
     public Result importProductAccount(@RequestParam("file") MultipartFile file,Integer fileType){
+        if (Objects.isNull(file)){
+            throw new CostException(500,"请选择文件");
+        }
         InputStream in;
         InputStream in;
         // 导入的是收入数据
         // 导入的是收入数据
         try {
         try {
@@ -432,7 +435,7 @@ public class ExcelController {
             log.info("最开始:read={}",read);
             log.info("最开始:read={}",read);
             log.info("-------------------------------------------------------------------");
             log.info("-------------------------------------------------------------------");
             Long hospId = UserContext.getHospId();
             Long hospId = UserContext.getHospId();
-            return costIncomeGroupService.importIncomeGroup(read, hospId);
+            return costIncomeGroupService.importIncomeGroup(read, hospId,file);
         }catch (IOException e){
         }catch (IOException e){
             e.printStackTrace();;
             e.printStackTrace();;
             throw new CostException(500, "导入失败");
             throw new CostException(500, "导入失败");

+ 13 - 2
src/main/resources/application-dev.yml

@@ -53,6 +53,17 @@ logging:
   config: classpath:log4j2.xml
   config: classpath:log4j2.xml
   level:
   level:
     io.swagger.models.parameters.AbstractSerializableParameter: error
     io.swagger.models.parameters.AbstractSerializableParameter: error
+####本地文件相关配置
 file:
 file:
-  filelocal:
-
+  #Windows
+  #  filelocal: file:D:\\file\\
+  #linux
+  filelocal: file:/image/
+  #linux
+  #  serverPath: /image
+  #windows
+  serverPath: D://file
+  #local
+  #  serverUrl: http://112.124.59.133:8082//
+  #linux
+  serverUrl: http://112.124.59.133:8082/

+ 13 - 14
src/main/resources/mapper/CostIncomeGroupMapper.xml

@@ -11,30 +11,29 @@
         <result property="startDepartmentCode" column="start_department_code"/>
         <result property="startDepartmentCode" column="start_department_code"/>
         <result property="startResponsibilityCode" column="start_responsibility_code"/>
         <result property="startResponsibilityCode" column="start_responsibility_code"/>
         <result property="productCode" column="product_code"/>
         <result property="productCode" column="product_code"/>
+        <result property="productName" column="product_name"/>
         <result property="accountCode" column="account_code"/>
         <result property="accountCode" column="account_code"/>
-        <result property="isIncome" column="is_income"/>
+        <result property="accountName" column="account_name"/>
         <result property="openDepartmentAmount" column="open_department_amount"/>
         <result property="openDepartmentAmount" column="open_department_amount"/>
         <result property="startDepartmentAmount" column="start_department_amount"/>
         <result property="startDepartmentAmount" column="start_department_amount"/>
         <result property="amount" column="amount"/>
         <result property="amount" column="amount"/>
         <result property="hospId" column="hosp_id"/>
         <result property="hospId" column="hosp_id"/>
+        <result property="fileId" column="file_id"/>
+        <result property="doctorNumber" column="doctor_number"/>
+        <result property="doctorName" column="doctor_name"/>
+        <result property="patientId" column="patient_id"/>
+        <result property="outpatientId" column="outpatient_id"/>
+        <result property="patientName" column="patient_name"/>
+        <result property="patientFee" column="patient_fee"/>
+        <result property="receiptFee" column="receipt_fee"/>
+        <result property="totalNumber" column="total_number"/>
+        <result property="unit" column="unit"/>
+        <result property="feeDatetime" column="fee_datetime"/>
         <result property="dateYear" column="date_year"/>
         <result property="dateYear" column="date_year"/>
         <result property="dateMonth" column="date_month"/>
         <result property="dateMonth" column="date_month"/>
         <result property="createTime" column="create_time"/>
         <result property="createTime" column="create_time"/>
         <result property="deleteTime" column="delete_time"/>
         <result property="deleteTime" column="delete_time"/>
     </resultMap>
     </resultMap>
-    <sql id="Base_Column_List" >
-    id, open_department_code, open_responsibility_code, start_department_code, start_responsibility_code, product_code, account_code, is_income,
-    open_department_amount, start_department_amount, amount, hosp_id, date_year, date_month, create_time,
-    delete_time
-  </sql>
-
-    <select id="countMoney" resultType="com.imed.costaccount.model.vo.CostIncomeGroupAllAmountVO">
-        select
-        <include refid="Base_Column_List"/>
-        ,group_concat(amount) as addMoney
-        from cost_income_group
-        group by open_department_code , start_department_code , product_code;
-    </select>
 
 
 
 
 </mapper>
 </mapper>