Kaynağa Gözat

经营报表额外收支导入

zouxuan 2 yıl önce
ebeveyn
işleme
ec80aaccb5

+ 5 - 265
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/FinancialExpenditure.java

@@ -3,8 +3,9 @@ package com.ym.mec.biz.dal.entity;
 import com.ym.mec.biz.dal.enums.ExpenditureTypeEnum;
 import com.ym.mec.biz.dal.enums.FeeProjectEnum;
 import com.ym.mec.common.entity.BaseEntity;
-
+import com.ym.mec.common.tenant.TenantContextHolder;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -15,7 +16,8 @@ import static com.ym.mec.biz.dal.enums.ExpenditureTypeEnum.REFUND;
 /**
  * 对应数据库表(financial_expenditure):
  */
-public class FinancialExpenditure extends BaseEntity {
+@Data
+public class FinancialExpenditure {
 
 	private Integer id;
 	/**  */
@@ -104,269 +106,7 @@ public class FinancialExpenditure extends BaseEntity {
 
 	private boolean maintenanceFeeFlag;
 
-	public Integer getProcessId() {
-		return processId;
-	}
-
-	public void setProcessId(Integer processId) {
-		this.processId = processId;
-	}
-
-	public Integer getApplyUserId() {
-		return applyUserId;
-	}
-
-	public void setApplyUserId(Integer applyUserId) {
-		this.applyUserId = applyUserId;
-	}
-
-	public String getMerNo() {
-		return merNo;
-	}
-
-	public void setMerNo(String merNo) {
-		this.merNo = merNo;
-	}
-
-	public String getBankAddress() {
-		return bankAddress;
-	}
-
-	public void setBankAddress(String bankAddress) {
-		this.bankAddress = bankAddress;
-	}
-
-	public String getMerNoName() {
-		return merNoName;
-	}
-
-	public void setMerNoName(String merNoName) {
-		this.merNoName = merNoName;
-	}
-
-	public boolean isRefundInstrumentFeeFlag() {
-		return refundInstrumentFeeFlag;
-	}
-
-	public void setRefundInstrumentFeeFlag(boolean refundInstrumentFeeFlag) {
-		this.refundInstrumentFeeFlag = refundInstrumentFeeFlag;
-	}
-
-	public boolean isRefundTeachingAssistantsFeeFlag() {
-		return refundTeachingAssistantsFeeFlag;
-	}
-
-	public void setRefundTeachingAssistantsFeeFlag(boolean refundTeachingAssistantsFeeFlag) {
-		this.refundTeachingAssistantsFeeFlag = refundTeachingAssistantsFeeFlag;
-	}
-
-	public boolean isMaintenanceFeeFlag() {
-		return maintenanceFeeFlag;
-	}
-
-	public void setMaintenanceFeeFlag(boolean maintenanceFeeFlag) {
-		this.maintenanceFeeFlag = maintenanceFeeFlag;
-	}
-
-	public String getGroupType() {
-		return groupType;
-	}
-
-	public void setGroupType(String groupType) {
-		this.groupType = groupType;
-	}
-
-	public String getMusicGroupId() {
-		return musicGroupId;
-	}
-
-	public void setMusicGroupId(String musicGroupId) {
-		this.musicGroupId = musicGroupId;
-	}
-
-	public String getReturnFeeType() {
-		return returnFeeType;
-	}
-
-	public void setReturnFeeType(String returnFeeType) {
-		this.returnFeeType = returnFeeType;
-	}
-
-	public Long getVipGroupId() {
-		return vipGroupId;
-	}
-
-	public void setVipGroupId(Long vipGroupId) {
-		this.vipGroupId = vipGroupId;
-	}
-
-	public Integer getStudentId() {
-		return studentId;
-	}
-
-	public void setStudentId(Integer studentId) {
-		this.studentId = studentId;
-	}
-
-	public String getApplyUser() {
-		return applyUser;
-	}
-
-	public void setApplyUser(String applyUser) {
-		this.applyUser = applyUser;
-	}
-
-	public FeeProjectEnum getFeeProject() {
-		return feeProject;
-	}
-
-	public void setFeeProject(FeeProjectEnum feeProject) {
-		this.feeProject = feeProject;
-	}
-
-	public Integer getId() {
-		return id;
-	}
-
-	public void setId(Integer id) {
-		this.id = id;
-	}
-
-	public String getBatchNo() {
-		return batchNo;
-	}
-
-	public void setBatchNo(String batchNo) {
-		this.batchNo = batchNo;
-	}
-
-	public String getFinancialProcessNo() {
-		return financialProcessNo;
-	}
-
-	public void setFinancialProcessNo(String financialProcessNo) {
-		this.financialProcessNo = financialProcessNo;
-	}
-
-	public String getDingtalkProcessNo() {
-		return dingtalkProcessNo;
-	}
-
-	public void setDingtalkProcessNo(String dingtalkProcessNo) {
-		this.dingtalkProcessNo = dingtalkProcessNo;
-	}
-
-	public Integer getOrganId() {
-		return organId;
-	}
-
-	public void setOrganId(Integer organId) {
-		this.organId = organId;
-	}
-
-	public Integer getCooperationOrganId() {
-		return cooperationOrganId;
-	}
-
-	public void setCooperationOrganId(Integer cooperationOrganId) {
-		this.cooperationOrganId = cooperationOrganId;
-	}
-
-	public BigDecimal getAmount() {
-		return amount;
-	}
-
-	public void setAmount(BigDecimal amount) {
-		this.amount = amount;
-	}
-
-	public String getItemDetail() {
-		return itemDetail;
-	}
-
-	public void setItemDetail(String itemDetail) {
-		this.itemDetail = itemDetail;
-	}
-
-	public Date getPaymentTime() {
-		return paymentTime;
-	}
-
-	public void setPaymentTime(Date paymentTime) {
-		this.paymentTime = paymentTime;
-	}
-
-	public String getCause() {
-		return cause;
-	}
-
-	public void setCause(String cause) {
-		this.cause = cause;
-	}
-
-	public Date getCreateTime() {
-		return createTime;
-	}
-
-	public void setCreateTime(Date createTime) {
-		this.createTime = createTime;
-	}
-
-	public Date getUpdateTime() {
-		return updateTime;
-	}
-
-	public void setUpdateTime(Date updateTime) {
-		this.updateTime = updateTime;
-	}
-
-	public Integer getDelFlag() {
-		return delFlag;
-	}
-
-	public void setDelFlag(Integer delFlag) {
-		this.delFlag = delFlag;
-	}
-
-	public ExpenditureTypeEnum getType() {
-		return type;
-	}
-
-	public void setType(ExpenditureTypeEnum type) {
-		this.type = type;
-	}
-
-	public String getOrganName() {
-		return organName;
-	}
-
-	public void setOrganName(String organName) {
-		this.organName = organName;
-	}
-
-	public String getCooperationOrganName() {
-		return cooperationOrganName;
-	}
-
-	public void setCooperationOrganName(String cooperationOrganName) {
-		this.cooperationOrganName = cooperationOrganName;
-	}
-
-	public String getFeeType() {
-		return feeType;
-	}
-
-	public void setFeeType(String feeType) {
-		this.feeType = feeType;
-	}
-
-	public String getFeeProjectItem() {
-		return feeProjectItem;
-	}
-
-	public void setFeeProjectItem(String feeProjectItem) {
-		this.feeProjectItem = feeProjectItem;
-	}
+	private Integer tenantId = TenantContextHolder.getTenantId();
 
 	@Override
 	public boolean equals(Object o) {

+ 24 - 94
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/HumanCost.java

@@ -3,11 +3,12 @@ package com.ym.mec.biz.dal.entity;
 
 import java.math.BigDecimal;
 import java.util.Date;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.ym.mec.biz.dal.enums.HumanCostTypeEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
 
 import java.io.Serializable;
 
@@ -18,103 +19,32 @@ import java.io.Serializable;
  * @since 2023-04-17 15:31:31
  */
 @ApiModel(value = "human_cost-人力资源成本")
-public class HumanCost implements Serializable {
-  @TableField("id_")
-     @ApiModelProperty(value = "${column.comment}")
+@Data
+@TableName("human_cost")
+public class HumanCost{
+    @TableId(value = "id_", type = IdType.AUTO)
     private Integer id;
-    
-  @TableField("organ_id_")
-     @ApiModelProperty(value = "分部")
-    private Integer organId;
-    
-  @TableField("organ_name_")
-     @ApiModelProperty(value = "分部")
-    private String organName;
-    
-  @TableField("fixed_cost_")
-     @ApiModelProperty(value = "固定成本")
-    private BigDecimal fixedCost;
-    
-  @TableField("change_cost_")
-     @ApiModelProperty(value = "变动成本")
-    private BigDecimal changeCost;
-    
-  @TableField("month_")
-     @ApiModelProperty(value = "月份")
-    private String month;
-    
-  @TableField("create_time_")
-     @ApiModelProperty(value = "${column.comment}")
-    private Date createTime;
-    
-  @TableField("update_time_")
-     @ApiModelProperty(value = "${column.comment}")
-    private Date updateTime;
-    
-    
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public Integer getOrganId() {
-        return organId;
-    }
-
-    public void setOrganId(Integer organId) {
-        this.organId = organId;
-    }
-
-    public String getOrganName() {
-        return organName;
-    }
-
-    public void setOrganName(String organName) {
-        this.organName = organName;
-    }
 
-    public BigDecimal getFixedCost() {
-        return fixedCost;
-    }
-
-    public void setFixedCost(BigDecimal fixedCost) {
-        this.fixedCost = fixedCost;
-    }
-
-    public BigDecimal getChangeCost() {
-        return changeCost;
-    }
-
-    public void setChangeCost(BigDecimal changeCost) {
-        this.changeCost = changeCost;
-    }
-
-    public String getMonth() {
-        return month;
-    }
-
-    public void setMonth(String month) {
-        this.month = month;
-    }
+    @TableField("organ_id_")
+    @ApiModelProperty(value = "分部")
+    private Integer organId;
 
-    public Date getCreateTime() {
-        return createTime;
-    }
+    @TableField("human_cost_type_")
+    @ApiModelProperty(value = "费用类型")
+    private HumanCostTypeEnum humanCostType;
 
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
+    @TableField("amount_")
+    @ApiModelProperty(value = "费用")
+    private BigDecimal amount;
 
-    public Date getUpdateTime() {
-        return updateTime;
-    }
+    @TableField("month_")
+    @ApiModelProperty(value = "月份")
+    private String month;
 
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
+    @TableField("create_time_")
+    private Date createTime;
 
+    @TableField("update_time_")
+    private Date updateTime;
 }
 

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/DegreeTypeEnum.java

@@ -3,7 +3,7 @@ package com.ym.mec.biz.dal.enums;
 import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.ym.mec.common.enums.BaseEnum;
 
-public enum DegreeTypeEnum implements BaseEnum<String, ComplaintsStatusEnum> {
+public enum DegreeTypeEnum implements BaseEnum<String, DegreeTypeEnum> {
     GRADE("GRADE", "专业考级"),
     THEORY("THEORY", "乐理考级");
 

+ 7 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/FeeProjectEnum.java

@@ -7,28 +7,29 @@ public enum FeeProjectEnum implements BaseEnum<Integer, FeeProjectEnum> {
     SOCIAL_SECURITY_HOUSE_ALLOWANCE(2, "社保公积金"),
     HOUSE(3, "房租"),
     OFFICE(4, "办公"),
-    MAINS_PROPERTY(5, "水电物业供暖通讯"),
+    MAINS_PROPERTY(5, "水电物业"),
     TRAVEL(6, "差旅"),
-    SERVICES(7, "服务"),
+    SERVICES(7, "外部服务"),
     WELFARE(8, "福利"),
     ACTIVITIES(9, "活动"),
     TRAFFIC(10, "交通"),
     CERTIFICATES(11, "考级"),
-    INSTRUMENT(12, "琴行"),
+    INSTRUMENT(12, "临时场地租赁"),
     HANDLING(13, "手续费"),
     TAXES(14, "税金"),
-    COMMUNICATIONS(15, "通讯"),
+    COMMUNICATIONS(15, "通讯"),
     POSTAL_TRANSPORT(16, "邮递运输"),
     HOSPITALITY(17, "招待费"),
     NETWORK_CLASS(18, "网络教室成本"),
-    REFUND(19, "退费"),
+    REFUND(19, "业务退费"),
     TEACHING_POINT_RENTAL(20, "教学点租赁"),
     MUSICAL_INSTRUMENT_REPAIR(21, "乐器维修"),
     INTERNAL_SETTLEMENT(22, "内部结算"),
     MUSICAL(23, "乐器"),
     COST_PARTS(24, "配件费"),
     DEPOSIT(25, "押金"),
-    OTHER(26, "其他");
+    OTHER(26, "其他"),
+    ;
 
     private Integer code;
 

+ 39 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/HumanCostTypeEnum.java

@@ -0,0 +1,39 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum HumanCostTypeEnum implements BaseEnum<String, HumanCostTypeEnum> {
+	FIXED("FIXED","固定人力成本"),
+	VARIABLE("VARIABLE","变动人力成本"),
+	NETWORK_CLASSROOM("NETWORK_CLASSROOM","网络教室成本"),
+	INTERNAL_SETTLEMENT("INTERNAL_SETTLEMENT","内部结算"),
+	STUDENT_MANAGEMENT_FEE_ADJUSTMENT("STUDENT_MANAGEMENT_FEE_ADJUSTMENT","学员管理费调整");
+
+	@EnumValue
+	private String code;
+
+	private String msg;
+
+	HumanCostTypeEnum(String code, String msg) {
+		this.code = code;
+		this.msg = msg;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getMsg() {
+		return msg;
+	}
+
+	public void setMsg(String msg) {
+		this.msg = msg;
+	}
+
+	@Override
+	public String getCode() {
+		return this.code;
+	}
+}

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/TemplateTypeEnum.java

@@ -11,7 +11,9 @@ public enum TemplateTypeEnum implements BaseEnum<String, TemplateTypeEnum> {
     EXTERNAL_STUDENT_IMPORT_MUSIC_GROUP("EXTERNAL_STUDENT_IMPORT_MUSIC_GROUP", "外部学生入团导入模板"),
     BUY_FREE_LIVE_THEORY_COURSE("BUY_FREE_LIVE_THEORY_COURSE", "直播临时活动学员购买导入模板"),
     LIVE_TEACHER_CARD("LIVE_TEACHER_CARD","直播临时活动上课老师名片导入模板"),
-    LIVE_ROOM_PURVIEW_USER("LIVE_ROOM_PURVIEW_USER", "直播间用户观看权限表");
+    LIVE_ROOM_PURVIEW_USER("LIVE_ROOM_PURVIEW_USER", "直播间用户观看权限表"),
+    ADDITIONAL_IMPORT("ADDITIONAL_IMPORT", "经营报表额外的收支导入"),
+    ;
 
     private String code;
 

+ 3 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/DegreeLevelFeeMapper.java

@@ -1,15 +1,14 @@
 package com.ym.mec.biz.dal.mapper;
 
-import java.util.List;
-
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ym.mec.biz.dal.entity.DegreeLevelFeeNew;
-import com.ym.mec.biz.dal.enums.DegreeTypeEnum;
 import com.ym.mec.biz.dal.vo.DegreeLevelFeeNewVo;
+import com.ym.mec.biz.dal.wrapper.DegreeLevelFeeWrapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
-import com.ym.mec.biz.dal.wrapper.DegreeLevelFeeWrapper;
+
+import java.util.List;
 
 /**
  * 考级等级费用配置

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TempBuyFreeLiveTheoryCourseService.java

@@ -4,6 +4,7 @@ import com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse;
 import com.ym.mec.common.service.BaseService;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
 import java.util.List;
 
 public interface TempBuyFreeLiveTheoryCourseService extends BaseService<Integer, TempBuyFreeLiveTheoryCourse> {
@@ -11,4 +12,6 @@ public interface TempBuyFreeLiveTheoryCourseService extends BaseService<Integer,
     List<String> importBuyFreeLiveTheoryCourse(MultipartFile file, Integer id) throws Exception;
 
     List<String> importLiveTeacherCard(MultipartFile file, Integer id) throws Exception;
+
+    List<String> importHumanCost(MultipartFile file) throws Exception;
 }

+ 116 - 34
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TempBuyFreeLiveTheoryCourseServiceImpl.java

@@ -3,8 +3,10 @@ package com.ym.mec.biz.service.impl;
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.biz.dal.dao.TempLiveTeacherCardDao;
 import com.ym.mec.biz.dal.entity.Goods;
+import com.ym.mec.biz.dal.entity.HumanCost;
 import com.ym.mec.biz.dal.entity.TempLiveTeacherCard;
 import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.service.HumanCostService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.UploadReturnBean;
 import com.ym.mec.common.exception.BizException;
@@ -29,6 +31,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.io.ByteArrayInputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.util.*;
 
@@ -42,6 +45,9 @@ public class TempBuyFreeLiveTheoryCourseServiceImpl extends BaseServiceImpl<Inte
     @Resource
     private TempLiveTeacherCardDao tempLiveTeacherCardDao;
 
+    @Resource
+    private HumanCostService humanCostService;
+
     @Override
     public BaseDAO<Integer, TempBuyFreeLiveTheoryCourse> getDAO() {
         return tempBuyFreeLiveTheoryCourseDao;
@@ -56,46 +62,50 @@ public class TempBuyFreeLiveTheoryCourseServiceImpl extends BaseServiceImpl<Inte
         List<TempBuyFreeLiveTheoryCourse> tempList = new ArrayList<>();
 
         List<String> errMsg = new ArrayList();
-        List<Map<String, Object>> sheet = sheetsListMap.get("Sheet0");
-
-        for (int i = 0; i < sheet.size(); i++) {
-            Map<String, Object> row = sheet.get(i);
-            if (row.size() == 0) {
-                continue;
-            }
-            JSONObject objectMap = new JSONObject();
-            for (String s : row.keySet()) {
-                String columnValue = columns.get(s);
-                if (StringUtils.isEmpty(columnValue)) {
+        for (String sheetName : sheetsListMap.keySet()) {
+            List<Map<String, Object>> sheet = sheetsListMap.get(sheetName);
+            for (int i = 0; i < sheet.size(); i++) {
+                Map<String, Object> row = sheet.get(i);
+                if (row.size() == 0) {
                     continue;
                 }
-                if (null == row.get(s)) {
-                    continue;
+                JSONObject objectMap = new JSONObject();
+                for (String s : row.keySet()) {
+                    String columnValue = columns.get(s);
+                    if (StringUtils.isEmpty(columnValue)) {
+                        continue;
+                    }
+                    if (null == row.get(s)) {
+                        continue;
+                    }
+                    objectMap.put(columnValue, row.get(s));
+                }
+                String err = "";
+                //校验
+                Integer tempId = objectMap.getInteger("id");
+                if (null == tempId) {
+                    err += "ID不能为空/";
+                }
+                String recommendLevel = objectMap.getString("recommendLevel");
+                if (StringUtils.isNotEmpty(recommendLevel) && null == LevelEnum.getByName(recommendLevel.trim())) {
+                    err += "老师推荐级别列,数据异常(可选值:一级 二级 三级)/";
+                }
+                if (StringUtils.isNotEmpty(err)) {
+                    err = "第" + (i + 1) + "行数据异常:" + err.substring(0, err.length() - 1);
+                    errMsg.add(err);
                 }
-                objectMap.put(columnValue, row.get(s));
-            }
-            String err = "";
-            //校验
-            Integer tempId = objectMap.getInteger("id");
-            if (null == tempId) {
-                err += "ID不能为空/";
-            }
-            String recommendLevel = objectMap.getString("recommendLevel");
-            if (StringUtils.isNotEmpty(recommendLevel) && null == LevelEnum.getByName(recommendLevel.trim())) {
-                err += "老师推荐级别列,数据异常(可选值:一级 二级 三级)/";
-            }
-            if (StringUtils.isNotEmpty(err)) {
-                err = "第" + (i + 1) + "行数据异常:" + err.substring(0, err.length() - 1);
-                errMsg.add(err);
-            }
 
-            try {
-                TempBuyFreeLiveTheoryCourse course = JSONObject.parseObject(objectMap.toJSONString(), TempBuyFreeLiveTheoryCourse.class);
-                tempList.add(course);
-            } catch (Exception ex) {
-                throw new BizException("导入数据出错", ex);
+                try {
+                    TempBuyFreeLiveTheoryCourse course = JSONObject.parseObject(objectMap.toJSONString(), TempBuyFreeLiveTheoryCourse.class);
+                    tempList.add(course);
+                } catch (Exception ex) {
+                    throw new BizException("导入数据出错", ex);
+                }
             }
         }
+        List<Map<String, Object>> sheet = sheetsListMap.get("Sheet0");
+
+
         if (!CollectionUtils.isEmpty(errMsg)) {
             return errMsg;
         }
@@ -187,6 +197,78 @@ public class TempBuyFreeLiveTheoryCourseServiceImpl extends BaseServiceImpl<Inte
         return null;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public List<String> importHumanCost(MultipartFile file) throws Exception {
+        Map<String, List<Map<String, Object>>> sheetsListMap = POIUtil.importExcel(new ByteArrayInputStream(file.getBytes()), 2, file.getOriginalFilename());
+        InputStream inputStream = new ClassPathResource("columnMapper.ini").getInputStream();
+        Map<String, String> columns = IniFileUtil.readIniFile(inputStream, TemplateTypeEnum.ADDITIONAL_IMPORT.getMsg());
+        Integer tenantId = TenantContextHolder.getTenantId();
+        Map<String, Integer> organMap = getMap("organization", "name_", "id_", true,tenantId, String.class, Integer.class);
+        List<HumanCost> humanCosts = new ArrayList<>();
+        List<String> errMsg = new ArrayList();
+        StringBuffer sb = new StringBuffer();
+        for (String sheetName : sheetsListMap.keySet()) {
+            List<Map<String, Object>> sheet = sheetsListMap.get(sheetName);
+            for (int i = 0; i < sheet.size(); i++) {
+                int rowNum = i + 2;
+                Map<String, Object> row = sheet.get(i);
+                if (row.size() == 0) {
+                    continue;
+                }
+                JSONObject objectMap = new JSONObject();
+                valueIsNull: for (String s : row.keySet()) {
+                    String columnValue = columns.get(s);
+                    if (StringUtils.isEmpty(columnValue)) {
+                        continue;
+                    }
+                    if (null == row.get(s)) {
+                        continue;
+                    }
+                    if (columnValue.equals("organName") && StringUtils.isNotEmpty(row.get(s).toString())) {
+                        Integer integer = organMap.get(row.get(s));
+                        if (integer == null) {
+                            sb.append("第" + rowNum).append("行数据导入失败:分部名称不存在;");
+                            continue valueIsNull;
+                        } else {
+                            objectMap.put("organId", integer);
+                        }
+                        continue;
+                    }
+                    if (columnValue.equals("humanCostType")) {
+                        if (StringUtils.isEmpty(row.get(s).toString())) {
+                            sb.append("第" + rowNum).append("行数据导入失败:收支类型不存在;");
+                            continue valueIsNull;
+                        } else {
+                            for (HumanCostTypeEnum costTypeEnum : HumanCostTypeEnum.values()) {
+                                if (costTypeEnum.getMsg().equals(row.get(s).toString())) {
+                                    objectMap.put(columnValue, costTypeEnum);
+                                    break;
+                                }
+                            }
+                            continue;
+                        }
+                    }
+                    objectMap.put(columnValue, row.get(s));
+                }
+                try {
+                    HumanCost cost = JSONObject.parseObject(objectMap.toJSONString(), HumanCost.class);
+                    humanCosts.add(cost);
+                } catch (Exception ex) {
+                    throw new BizException("导入数据出错", ex);
+                }
+            }
+        }
+
+        if (!CollectionUtils.isEmpty(errMsg)) {
+            return errMsg;
+        }
+        if(!CollectionUtils.isEmpty(humanCosts)){
+            humanCostService.saveBatch(humanCosts);
+        }
+        return null;
+    }
+
     private String getMusicContent(String musicContent) {
         if (StringUtils.isEmpty(musicContent)) {
             return null;

+ 0 - 24
mec-biz/src/main/resources/config/mybatis/HumanCostMapper.xml

@@ -1,28 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ym.mec.biz.dal.dao.HumanCostDao">
-  <resultMap id="BaseResultMap" type="com.ym.mec.biz.dal.entity.HumanCost">
-                         <result column="id_" jdbcType="INTEGER" property="id"/>
-                                  <result column="organ_id_" jdbcType="INTEGER" property="organId"/>
-                                  <result column="organ_name_" jdbcType="VARCHAR" property="organName"/>
-                                  <result column="fixed_cost_" jdbcType="VARCHAR" property="fixedCost"/>
-                                  <result column="change_cost_" jdbcType="VARCHAR" property="changeCost"/>
-                                  <result column="month_" jdbcType="VARCHAR" property="month"/>
-                                  <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
-                                  <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
-                </resultMap>
-  
-  <sql id="Base_Column_List">    
-                                            id_, organ_id_, organ_name_, fixed_cost_, change_cost_, month_, create_time_, update_time_
-  </sql>
-  
-   <insert id="insertBatch" keyColumn="" keyProperty="" useGeneratedKeys="true"
-            parameterType="com.ym.mec.biz.dal.entity.HumanCost">
-       insert into human_cost(id_, organ_id_, organ_name_, fixed_cost_, change_cost_, month_, create_time_, update_time_)
-       values
-       <foreach collection="entities" item="entity" separator=",">
-       (#{entity.id}, #{entity.organId}, #{entity.organName}, #{entity.fixedCost}, #{entity.changeCost}, #{entity.month}, #{entity.createTime}, #{entity.updateTime})
-       </foreach>
-   </insert>
-
 </mapper>

+ 35 - 53
mec-web/src/main/java/com/ym/mec/web/controller/ImportController.java

@@ -1,25 +1,20 @@
 package com.ym.mec.web.controller;
 
-import com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse;
+import com.ym.mec.biz.dal.entity.FinancialExpenditure;
+import com.ym.mec.biz.dal.entity.Goods;
+import com.ym.mec.biz.dal.entity.StudentPaymentRouteOrder;
+import com.ym.mec.biz.dal.enums.TemplateTypeEnum;
 import com.ym.mec.biz.service.*;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.entity.UploadReturnBean;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.util.date.DateUtil;
+import com.ym.mec.util.excel.POIUtil;
+import com.ym.mec.util.upload.UploadUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.tomcat.util.http.fileupload.IOUtils;
@@ -27,26 +22,17 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.security.access.prepost.PreAuthorize;
 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.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.FinancialExpenditure;
-import com.ym.mec.biz.dal.entity.Goods;
-import com.ym.mec.biz.dal.entity.StudentPaymentRouteOrder;
-import com.ym.mec.biz.dal.enums.TemplateTypeEnum;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.common.entity.UploadReturnBean;
-import com.ym.mec.common.exception.BizException;
-import com.ym.mec.util.date.DateUtil;
-import com.ym.mec.util.excel.POIUtil;
-import com.ym.mec.util.upload.UploadUtil;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
 
 @RequestMapping("import")
 @Api(tags = "数据导入服务")
@@ -58,7 +44,7 @@ public class ImportController extends BaseController {
     @Autowired
     private FinancialExpenditureService financialExpenditureService;
     @Autowired
-    private SysUserFeignService sysUserFeignService;
+    private SysUserService sysUserService;
     @Autowired
     private StudentPaymentRouteOrderService studentPaymentRouteOrderService;
     @Autowired
@@ -74,11 +60,7 @@ public class ImportController extends BaseController {
     @PostMapping(value = "goods")
     @PreAuthorize("@pcs.hasPermissions('import/goods')")
     public HttpResponseResult<List<Goods>> importGoods(@RequestParam("file") MultipartFile file) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed("用户信息获取失败");
-        }
-        return succeed(goodsService.importGoods(file, sysUser.getId()));
+        return succeed(goodsService.importGoods(file, sysUserService.getUserId()));
     }
 
     @ApiOperation(value = "导入财务支出")
@@ -92,10 +74,6 @@ public class ImportController extends BaseController {
     @PostMapping(value = "importRedemptionCode")
     @PreAuthorize("@pcs.hasPermissions('import/importRedemptionCode')")
     public HttpResponseResult<String> importRedemptionCode(@RequestParam("file") MultipartFile file) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed("用户信息获取失败");
-        }
         String msg = appRedemptionCodeService.importRedemptionCode(file);
         HttpResponseResult response = succeed(null);
         response.setMsg(msg);
@@ -186,11 +164,7 @@ public class ImportController extends BaseController {
     @PostMapping(value = "importBuyFreeLiveTheoryCourse")
     @PreAuthorize("@pcs.hasPermissions('import/importBuyFreeLiveTheoryCourseList')")
     public HttpResponseResult<List<String>> importBuyFreeLiveTheoryCourse(@RequestParam("file") MultipartFile file) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed("用户信息获取失败");
-        }
-        List<String> errMsg = liveTheoryCourseService.importBuyFreeLiveTheoryCourse(file, sysUser.getId());
+        List<String> errMsg = liveTheoryCourseService.importBuyFreeLiveTheoryCourse(file, sysUserService.getUserId());
         if (CollectionUtils.isEmpty(errMsg)) {
             return succeed();
         } else {
@@ -202,11 +176,19 @@ public class ImportController extends BaseController {
     @PostMapping(value = "importLiveTeacherCard")
     @PreAuthorize("@pcs.hasPermissions('import/importLiveTeacherCard')")
     public HttpResponseResult<List<String>> importLiveTeacherCard(@RequestParam("file") MultipartFile file) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed("用户信息获取失败");
+        List<String> errMsg = liveTheoryCourseService.importLiveTeacherCard(file, sysUserService.getUserId());
+        if (CollectionUtils.isEmpty(errMsg)) {
+            return succeed();
+        } else {
+            return failed(StringUtils.join(errMsg, ","));
         }
-        List<String> errMsg = liveTheoryCourseService.importLiveTeacherCard(file, sysUser.getId());
+    }
+
+    @ApiOperation(value = "经营报表额外的数据录入")
+    @PostMapping(value = "importHumanCost")
+    @PreAuthorize("@pcs.hasPermissions('import/importHumanCost')")
+    public HttpResponseResult<List<String>> importHumanCost(@RequestParam("file") MultipartFile file) throws Exception {
+        List<String> errMsg = liveTheoryCourseService.importHumanCost(file);
         if (CollectionUtils.isEmpty(errMsg)) {
             return succeed();
         } else {

+ 7 - 1
mec-web/src/main/resources/columnMapper.ini

@@ -102,4 +102,10 @@ ID = id
 已提交数 = exercisesReplyNum
 点评数 = exercisesMessageNum
 出勤率 = signRate
-达标率 = passRate
+达标率 = passRate
+
+[经营报表额外的收支导入]
+分部 = organName
+收支类型 = humanCostType
+金额 = amount
+日期 = month