瀏覽代碼

财务报表增加工伤保险,对权限进行了梳理,去掉了公司高层。

seyason 3 年之前
父節點
當前提交
609adfd113
共有 20 個文件被更改,包括 144 次插入101 次删除
  1. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/FinanceController.java
  2. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java
  3. 8 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Finance.java
  4. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProjectSumItem.java
  5. 13 11
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DingDingServiceImpl.java
  6. 63 34
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java
  7. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/FinanceMapper.xml
  8. 10 10
      fhKeeper/formulahousekeeper/timesheet/config/index.js
  9. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/Home.vue
  10. 6 6
      fhKeeper/formulahousekeeper/timesheet/src/views/Login.vue
  11. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/customer/list.vue
  12. 3 3
      fhKeeper/formulahousekeeper/timesheet/src/views/expense/expense.vue
  13. 4 4
      fhKeeper/formulahousekeeper/timesheet/src/views/leave/list.vue
  14. 8 6
      fhKeeper/formulahousekeeper/timesheet/src/views/project/finance.vue
  15. 2 2
      fhKeeper/formulahousekeeper/timesheet/src/views/project/info.vue
  16. 9 9
      fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue
  17. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/research/list.vue
  18. 5 5
      fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue
  19. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue
  20. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/workflow/report.vue

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/FinanceController.java

@@ -95,8 +95,9 @@ public class FinanceController {
             heads.add("养老保险");
             heads.add("医疗保险");
             heads.add("失业保险");
+            heads.add("工伤保险");
             heads.add("住房公积金");
-            heads.add("其他");
+//            heads.add("其他");
             if (list.size() > 0) {
                 List<String> collect = list.stream().map(FinanceTblcuscol::getFieldName).collect(Collectors.toList());
                 heads.addAll(collect);

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -573,12 +573,12 @@ public class WeiXinCorpController {
                     if (userMapper.selectCount(new QueryWrapper<User>().eq("corpwx_userid", userId)) == 0) {
                         JSONObject userDetail = getUserInfo(curCorpAccessToken, userId);
 
-                        //授权人就当做是系统管理员吧
+                        //授权人就当做是超级管理员吧
                         log.info("===userDetail==" + userDetail.toJSONString());
                         Long id = SnowFlake.nextId();
                         User user = new User()
                                 .setId(id.toString())
-                                .setRole(0)
+                                .setRole(1)
                                 .setName(data.getAuthUsername())
                                 .setCorpwxUserid(userId)
                                 .setColor(ColorUtil.randomColor())

+ 8 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Finance.java

@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2021-12-17
+ * @since 2021-12-30
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -91,6 +91,12 @@ public class Finance extends Model<Finance> {
     @TableField("insurance_losejob")
     private BigDecimal insuranceLosejob;
 
+    /**
+     * 工伤保险
+     */
+    @TableField("insurance_injury")
+    private BigDecimal insuranceInjury;
+
     /**
      * 住房公积金
      */
@@ -133,6 +139,7 @@ public class Finance extends Model<Finance> {
     @TableField("custom_field3")
     private BigDecimal customField3;
 
+
     @TableField(exist = false)
     private BigDecimal hourCost;
 

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProjectSumItem.java

@@ -13,8 +13,9 @@ public class ProjectSumItem {
     public BigDecimal old;
     public BigDecimal medical;
     public BigDecimal loseJob;
+    public BigDecimal injury;
     public BigDecimal house;
-    public BigDecimal other;
+//    public BigDecimal other;
 
     //自定义字段
     public BigDecimal field1;

+ 13 - 11
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DingDingServiceImpl.java

@@ -360,6 +360,7 @@ public class DingDingServiceImpl implements DingDingService {
                     if (cnt > 0) {
                         userVO.setLeader(true);
                     }
+                    userVO.setTimeType(timeTypeMapper.selectById(company.getId()));
                     httpRespMsg.data = userVO;
                 }
             }
@@ -637,17 +638,18 @@ public class DingDingServiceImpl implements DingDingService {
             if (userMapper.selectCount(new QueryWrapper<User>().eq("dingding_userid", dingdingUserid).eq("company_id", companyId)) == 0) {
                 userMapper.insert(user);
             } else {
-                //更新信息
-                User oldUser = userMapper.selectList(new QueryWrapper<User>().eq("dingding_userid", dingdingUserid).eq("company_id", companyId).orderByDesc("create_time")).get(0);
-                oldUser.setName(userJson.getString("name"));
-                oldUser.setDepartmentId(departmentId);
-                if (oldUser.getRole() != Constant.ROLE_MASTER) {
-                    oldUser.setRole(user.getRole());
-                }
-                if (departmentId != null) {
-                    oldUser.setDepartmentCascade(convertDepartmentIdToCascade(departmentId));
-                }
-                userMapper.updateById(oldUser);
+                //已有人员不做改动
+//                User oldUser = userMapper.selectList(new QueryWrapper<User>().eq("dingding_userid", dingdingUserid).eq("company_id", companyId).orderByDesc("create_time")).get(0);
+//                oldUser.setName(userJson.getString("name"));
+//                oldUser.setDepartmentId(departmentId);
+                //不修改人员角色
+//                if (oldUser.getRole() == Constant.ROLE_EMPLOYEE) {
+//                    oldUser.setRole(user.getRole());
+//                }
+//                if (departmentId != null) {
+//                    oldUser.setDepartmentCascade(convertDepartmentIdToCascade(departmentId));
+//                }
+//                userMapper.updateById(oldUser);
             }
 
         }

+ 63 - 34
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java

@@ -120,7 +120,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
 
             //需要更新成本的人员数据
             List<User> updateUserList = new ArrayList<>();
-            LocalDate now = LocalDate.now();
+
             String startStr = yearMonth + "-01";
             String endStr = yearMonth + "-31";
             //获取人员该月份填写的日报的总时长
@@ -134,7 +134,6 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             //由于第一行需要指明列对应的标题
             int rowNum = sheet.getLastRowNum();
             for (int rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex++) {
-
                 Row row = sheet.getRow(rowIndex);
                 if (row == null) {
                     continue;
@@ -142,7 +141,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 if (ExcelUtil.isRowEmpty(row)) {
                     continue;
                 }
-                //姓名	工资	奖金	津贴	养老保险	医疗保险	失业保险	住房公积金	其他; 可能有自定义的项
+                //姓名	工资	奖金	津贴	养老保险	医疗保险	失业保险	(新增工伤保险) 住房公积金	其他; 可能有自定义的项
                 Cell nameCell = row.getCell(0);
                 Cell salaryCell = row.getCell(1);
                 Cell bonusCell = row.getCell(2);
@@ -150,8 +149,9 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 Cell inOldCell = row.getCell(4);
                 Cell inMedicalCell = row.getCell(5);
                 Cell inJobCell = row.getCell(6);
-                Cell houseFundCell = row.getCell(7);
-                Cell otherCell = row.getCell(8);
+                Cell injuryCell = row.getCell(7);
+                Cell houseFundCell = row.getCell(8);
+//                Cell otherCell = row.getCell(9);
                 Cell field1 = cusColList.size() > 0?row.getCell(9):null;
                 Cell field2 = cusColList.size() > 1?row.getCell(10):null;
                 Cell field3 = cusColList.size() > 2?row.getCell(11):null;
@@ -165,15 +165,21 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 inMedicalCell.setCellType(CellType.STRING);
                 inJobCell.setCellType(CellType.STRING);
                 houseFundCell.setCellType(CellType.STRING);
-                if (otherCell != null)otherCell.setCellType(CellType.STRING);
+//                if (otherCell != null)otherCell.setCellType(CellType.STRING);
                 if (field1 != null)field1.setCellType(CellType.STRING);
                 if (field2 != null)field2.setCellType(CellType.STRING);
                 if (field3 != null)field3.setCellType(CellType.STRING);
 
                 String name = nameCell.getStringCellValue().trim().replaceAll("\\u00a0", "");
                 Finance finance = new Finance();
+
                 if (name.equals("姓名") && rowIndex == 0) {
                     //跳过第一行标题
+                    if (!"工伤保险".equals(injuryCell.getStringCellValue())) {
+                        //缺少工伤保险,需要新的财务报表模板
+                        msg.setError("缺少工伤保险栏,请重新下载财务模板填写上传");
+                        return msg;
+                    }
                     continue;
                 }
                 finance.setCompanyId(companyId);
@@ -233,6 +239,13 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                         finance.setInsuranceOld(value);
                         total = total.add(value);
                     }
+                    if (injuryCell != null) {
+                        injuryCell.setCellType(CellType.STRING);
+                        String item = injuryCell.getStringCellValue();
+                        BigDecimal value = item != null ? new BigDecimal(item.trim().replaceAll("\\u00a0", "")) : BigDecimal.valueOf(0);
+                        finance.setInsuranceInjury(value);
+                        total = total.add(value);
+                    }
                     if (houseFundCell != null) {
                         houseFundCell.setCellType(CellType.STRING);
                         String item = houseFundCell.getStringCellValue();
@@ -240,13 +253,13 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                         finance.setHouseFund(value);
                         total = total.add(value);
                     }
-                    if (otherCell != null) {
-                        otherCell.setCellType(CellType.STRING);
-                        String item = otherCell.getStringCellValue();
-                        BigDecimal value = item != null ? new BigDecimal(item.trim().replaceAll("\\u00a0", "")) : BigDecimal.valueOf(0);
-                        finance.setOthers(value);
-                        total = total.add(value);
-                    }
+//                    if (otherCell != null) {
+//                        otherCell.setCellType(CellType.STRING);
+//                        String item = otherCell.getStringCellValue();
+//                        BigDecimal value = item != null ? new BigDecimal(item.trim().replaceAll("\\u00a0", "")) : BigDecimal.valueOf(0);
+//                        finance.setOthers(value);
+//                        total = total.add(value);
+//                    }
                     if (field1 != null) {
                         field1.setCellType(CellType.STRING);
                         String item = field1.getStringCellValue();
@@ -296,7 +309,10 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 financeList.add(finance);
 
             }
-
+            if (financeList.size() == 0) {
+                msg.setError("请填写数据再上传");
+                return msg;
+            }
             //批量插入
             financeService.saveOrUpdateBatch(financeList);
             if (syncUserCost) {
@@ -384,8 +400,9 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             BigDecimal totalOld = BigDecimal.valueOf(0);
             BigDecimal totalMedical = BigDecimal.valueOf(0);
             BigDecimal totalLoseJob = BigDecimal.valueOf(0);
+            BigDecimal totalInjury = BigDecimal.valueOf(0);
             BigDecimal totalHouse = BigDecimal.valueOf(0);
-            BigDecimal totalOther = BigDecimal.valueOf(0);
+//            BigDecimal totalOther = BigDecimal.valueOf(0);
             BigDecimal totalField1 = cusColList.size() > 0?BigDecimal.valueOf(0):null;
             BigDecimal totalField2 = cusColList.size() > 1?BigDecimal.valueOf(0):null;
             BigDecimal totalField3 = cusColList.size() > 2?BigDecimal.valueOf(0):null;
@@ -400,8 +417,9 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             headList.add("养老保险(元)");
             headList.add("医疗保险(元)");
             headList.add("失业保险(元)");
+            headList.add("工伤保险(元)");
             headList.add("住房公积金(元)");
-            headList.add("其他(元)");
+//            headList.add("其他(元)");
             for (FinanceTblcuscol col : cusColList) {
                 headList.add(col.getFieldName());
             }
@@ -453,8 +471,9 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 BigDecimal old = new BigDecimal(0);
                 BigDecimal medical = new BigDecimal(0);
                 BigDecimal loseJob = new BigDecimal(0);
+                BigDecimal injury = new BigDecimal(0);
                 BigDecimal house = new BigDecimal(0);
-                BigDecimal other = new BigDecimal(0);
+//                BigDecimal other = new BigDecimal(0);
                 BigDecimal field1Item = new BigDecimal(0);
                 BigDecimal field2Item = new BigDecimal(0);
                 BigDecimal field3Item = new BigDecimal(0);
@@ -467,12 +486,13 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                     old = userFinance.getInsuranceOld().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
                     medical = userFinance.getInsuranceMedical().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
                     loseJob = userFinance.getInsuranceLosejob().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
+                    injury = userFinance.getInsuranceInjury().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
                     house = userFinance.getHouseFund().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                    if (userFinance.getOthers() == null) {
-                        other = new BigDecimal(0);
-                    } else {
-                        other = userFinance.getOthers().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                    }
+//                    if (userFinance.getOthers() == null) {
+//                        other = new BigDecimal(0);
+//                    } else {
+//                        other = userFinance.getOthers().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
+//                    }
                     if (userFinance.getCustomField1() != null) {
                         field1Item = userFinance.getCustomField1().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
                     }
@@ -496,8 +516,9 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                     item.old = item.old.add(old);
                     item.medical = item.medical.add(medical);
                     item.loseJob = item.loseJob.add(loseJob);
+                    item.injury = item.injury.add(injury);
                     item.house = item.house.add(house);
-                    item.other = item.other.add(other);
+//                    item.other = item.other.add(other);
                     item.field1 = item.field1.add(field1Item);
                     item.field2 = item.field2.add(field2Item);
                     item.field3 = item.field3.add(field3Item);
@@ -513,8 +534,9 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                     item.old = old;
                     item.medical = medical;
                     item.loseJob = loseJob;
+                    item.injury = injury;
                     item.house = house;
-                    item.other = other;
+//                    item.other = other;
                     item.field1 = field1Item;
                     item.field2 = field2Item;
                     item.field3 = field3Item;
@@ -526,8 +548,9 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 totalOld = totalOld.add(old);
                 totalMedical = totalMedical.add(medical);
                 totalLoseJob = totalLoseJob.add(loseJob);
+                totalInjury = totalInjury.add(injury);
                 totalHouse = totalHouse.add(house);
-                totalOther = totalOther.add(other);
+//                totalOther = totalOther.add(other);
                 if (totalField1 != null) {
                     totalField1 = totalField1.add(field1Item);
                 }
@@ -548,8 +571,9 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             totalOld = totalOld.setScale(2, BigDecimal.ROUND_HALF_UP);
             totalMedical = totalMedical.setScale(2, BigDecimal.ROUND_HALF_UP);
             totalLoseJob = totalLoseJob.setScale(2, BigDecimal.ROUND_HALF_UP);
+            totalInjury = totalInjury.setScale(2, BigDecimal.ROUND_HALF_UP);
             totalHouse = totalHouse.setScale(2, BigDecimal.ROUND_HALF_UP);
-            totalOther = totalOther.setScale(2, BigDecimal.ROUND_HALF_UP);
+//            totalOther = totalOther.setScale(2, BigDecimal.ROUND_HALF_UP);
             if (totalField1 != null) {
                 totalField1 = totalField1.setScale(2, BigDecimal.ROUND_HALF_UP);
             }
@@ -567,8 +591,9 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 p.old = p.old.setScale(2, BigDecimal.ROUND_HALF_UP);
                 p.medical = p.medical.setScale(2, BigDecimal.ROUND_HALF_UP);
                 p.loseJob = p.loseJob.setScale(2, BigDecimal.ROUND_HALF_UP);
+                p.injury = p.injury.setScale(2, BigDecimal.ROUND_HALF_UP);
                 p.house = p.house.setScale(2, BigDecimal.ROUND_HALF_UP);
-                p.other = p.other.setScale(2, BigDecimal.ROUND_HALF_UP);
+//                p.other = p.other.setScale(2, BigDecimal.ROUND_HALF_UP);
                 p.field1 = p.field1.setScale(2, BigDecimal.ROUND_HALF_UP);
                 p.field2 = p.field2.setScale(2, BigDecimal.ROUND_HALF_UP);
                 p.field3 = p.field3.setScale(2, BigDecimal.ROUND_HALF_UP);
@@ -584,8 +609,9 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 rowData.add(p.old.toPlainString());
                 rowData.add(p.medical.toPlainString());
                 rowData.add(p.loseJob.toPlainString());
+                rowData.add(p.injury.toPlainString());
                 rowData.add(p.house.toPlainString());
-                rowData.add(p.other.toPlainString());
+//                rowData.add(p.other.toPlainString());
                 if (cusColList.size() > 0) {
                     rowData.add(p.field1.toPlainString());
                 }
@@ -621,8 +647,9 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                         BigDecimal old = userFinance.getInsuranceOld().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
                         BigDecimal medical = userFinance.getInsuranceMedical().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
                         BigDecimal loseJob = userFinance.getInsuranceLosejob().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
+                        BigDecimal injury = userFinance.getInsuranceInjury().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
                         BigDecimal house = userFinance.getHouseFund().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
-                        BigDecimal other = userFinance.getOthers() == null?new BigDecimal(0):userFinance.getOthers().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
+//                        BigDecimal other = userFinance.getOthers() == null?new BigDecimal(0):userFinance.getOthers().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
                         BigDecimal field1 = userFinance.getCustomField1() == null? new BigDecimal(0):userFinance.getCustomField1().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
                         BigDecimal field2 = userFinance.getCustomField2() == null? new BigDecimal(0):userFinance.getCustomField2().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
                         BigDecimal field3 = userFinance.getCustomField3() == null? new BigDecimal(0):userFinance.getCustomField3().multiply(new BigDecimal(workingTime)).divide(userTime.get(creatorId).workingTime, 4, BigDecimal.ROUND_HALF_UP);
@@ -634,8 +661,9 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                         membRowData.add(old.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
                         membRowData.add(medical.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
                         membRowData.add(loseJob.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
+                        membRowData.add(injury.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
                         membRowData.add(house.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
-                        membRowData.add(other.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
+//                        membRowData.add(other.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
                         //自定义字段
                         if (cusColList.size() > 0) {
                             membRowData.add(field1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
@@ -652,7 +680,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 }
             });
 
-            String total = totalMoneyCost.toString();
+
             //合计
             List<String> sumRow = new ArrayList<String>();
             sumRow.add("合计");
@@ -664,12 +692,14 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             sumRow.add(totalOld.toString());
             sumRow.add(totalMedical.toString());
             sumRow.add(totalLoseJob.toString());
+            sumRow.add(totalInjury.toString());
             sumRow.add(totalHouse.toString());
-            sumRow.add(totalOther.toString());
-            sumRow.add(totalMoneyCost.toString());
+//            sumRow.add(totalOther.toString());
+
             if (cusColList.size() > 0) sumRow.add(totalField1.toString());
             if (cusColList.size() > 1) sumRow.add(totalField2.toString());
             if (cusColList.size() > 2) sumRow.add(totalField3.toString());
+            sumRow.add(totalMoneyCost.toString());
             allList.add(sumRow);
             //生成excel文件导出
             String fileName = "财务人员成本_"+System.currentTimeMillis();
@@ -797,7 +827,6 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
 
     @Override
     public HttpRespMsg getNoProjectUsers(String yearMonth, HttpServletRequest request) {
-
         Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
 
         //获取月成本列表

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/FinanceMapper.xml

@@ -15,6 +15,7 @@
         <result column="insurance_old" property="insuranceOld" />
         <result column="insurance_medical" property="insuranceMedical" />
         <result column="insurance_losejob" property="insuranceLosejob" />
+        <result column="insurance_injury" property="insuranceInjury" />
         <result column="house_fund" property="houseFund" />
         <result column="others" property="others" />
         <result column="total_cost" property="totalCost" />
@@ -26,7 +27,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, user_id, name, company_id, dept_name, month_cost, bonus, allowance, insurance_old, insurance_medical, insurance_losejob, house_fund, others, total_cost, ymonth, custom_field1, custom_field2, custom_field3
+        id, user_id, name, company_id, dept_name, month_cost, bonus, allowance, insurance_old, insurance_medical, insurance_losejob, insurance_injury, house_fund, others, total_cost, ymonth, custom_field1, custom_field2, custom_field3
     </sql>
 
 </mapper>

+ 10 - 10
fhKeeper/formulahousekeeper/timesheet/config/index.js

@@ -4,18 +4,18 @@ var path = require('path')
 // var ip = '192.168.2.36'
 
  
-var ip = '47.100.37.243'
+// var ip = '47.100.37.243'
 // var ip = '192.168.2.34'
 
-// var os = require('os'), ip = '', ifaces = os.networkInterfaces() // 获取本机ip
-// for (var i in ifaces) {
-//     for (var j in ifaces[i]) {
-//         var val = ifaces[i][j]
-//         if (val.family === 'IPv4' && val.address !== '127.0.0.1') {
-//             ip = val.address
-//         }
-//     }
-// }
+var os = require('os'), ip = '', ifaces = os.networkInterfaces() // 获取本机ip
+for (var i in ifaces) {
+    for (var j in ifaces[i]) {
+        var val = ifaces[i][j]
+        if (val.family === 'IPv4' && val.address !== '127.0.0.1') {
+            ip = val.address
+        }
+    }
+}
 
 module.exports = {
   build: {

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/Home.vue

@@ -165,7 +165,7 @@
     export default {
         data() {
             return {
-                roleArray:["普通员工","超级管理员", "系统管理员", "公司高层","人事管理员", "项目管理员","公司领导"],
+                roleArray:["普通员工","超级管理员", "系统管理员", "公司高层","财务管理员", "项目管理员","公司领导"],
                 helpImg: '../assets/image/userHead.png',
                 user: sessionStorage.getItem("user"),
                 sysName: "工时管家",

+ 6 - 6
fhKeeper/formulahousekeeper/timesheet/src/views/Login.vue

@@ -64,11 +64,11 @@
         created() {
             if (localStorage.userInfo != null) {
                 var user = JSON.parse(localStorage.userInfo);
-                if (user.role == 3) {
+                if (user.role == 3 ) {
                     //公司高层
                     this.$router.push({ path: '/cost' });
                 } else if (user.role == 4) {
-                    //人事管理员
+                    //财务管理员
                     this.$router.push({ path: '/team' });
                 } else {
                     this.$router.push({ path: '/daily' });
@@ -86,7 +86,7 @@
                     //公司高层
                     this.$router.push({ path: '/cost' });
                 } else if (user.role == 4) {
-                    //人事管理员
+                    //财务管理员
                     this.$router.push({ path: '/team' });
                 } else {
                     this.$router.push({ path: '/daily' });
@@ -191,7 +191,7 @@
                                     //公司高层
                                     this.$router.push({ path: '/cost' });
                                 } else if (user.role == 4) {
-                                    //人事管理员
+                                    //财务管理员
                                     this.$router.push({ path: '/team' });
                                 } else {
                                     this.$router.push({ path: '/daily' });
@@ -219,7 +219,7 @@
                                     //公司高层
                                     this.$router.push({ path: '/cost' });
                                 } else if (user.role == 4) {
-                                    //人事管理员
+                                    //财务管理员
                                     this.$router.push({ path: '/team' });
                                 } else {
                                     this.$router.push({ path: '/daily' });
@@ -263,7 +263,7 @@
                                     //公司高层
                                     this.$router.push({ path: '/cost' });
                                 } else if (user.role == 4) {
-                                    //人事管理员
+                                    //财务管理员
                                     this.$router.push({ path: '/team' });
                                 } else {
                                     this.$router.push({ path: '/daily' });

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/customer/list.vue

@@ -108,7 +108,7 @@
     export default {
         data() {
             return {
-                roleArray:["普通员工","超级管理员", "系统管理员", "公司高层","人事管理员", "项目管理员"],
+                roleArray:["普通员工","超级管理员", "系统管理员", "公司高层","财务管理员", "项目管理员"],
                 status:null,
                 statusTxt:["-","进行中","已完成","已撤销"],
                 importanceList:[{id:1,label:'正常'},{id:2,label:'紧急'},{id:3,label:'重要'},{id:4,label:'重要且紧急'}],

+ 3 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/expense/expense.vue

@@ -21,13 +21,13 @@
               <el-menu-item index="1-2"><p @click="ssl(1)">差旅费用填报</p></el-menu-item>
               <el-menu-item index="1-3"><p @click="ssl(2)">外包费用填报</p></el-menu-item>
           </el-submenu>
-          <el-submenu index="2" v-if="user.role == 1 || user.role == 2 || user.role == 4 ">
+          <el-submenu index="2" v-if="user.role == 1 || user.role == 2 || user.role == 4 || user.role == 6 ">
             <template slot="title">
               <i class="iconfont firerock-iconbaoxiaodan"></i>
               <span>{{user.role == 0?"我的报销凭证":"报销凭证列表"}}</span>
             </template>
             <el-menu-item index="2-1" ><p @click="bills(false)" >单据列表</p></el-menu-item>
-            <el-menu-item index="2-2" ><p @click="bills(true)">单据审核</p></el-menu-item>
+            <el-menu-item index="2-2" v-if="user.role != 6"><p @click="bills(true)">单据审核</p></el-menu-item>
           </el-submenu>
             <el-menu-item index="3" @select="bills" @click="bills(false)" v-if="user.role == 0">
               <i class="iconfont firerock-iconbaoxiaodan"></i>
@@ -244,7 +244,7 @@
                   <span v-if="scope.row.status == 0 || scope.row.status == 3" >{{statusTxt[scope.row.status]}}</span>
                 </template>
               </el-table-column>
-              <el-table-column label="操作" :width="isAuditList?220:160">
+              <el-table-column label="操作" :width="isAuditList?220:160" v-if="user.role != 6">
                   <template slot-scope="scope" >
                       <div v-if="!isAuditList">
                       <el-button icon="el-icon-view"  circle size="mini"  @click.stop.native="downloadByA(scope.row)" ></el-button>

+ 4 - 4
fhKeeper/formulahousekeeper/timesheet/src/views/leave/list.vue

@@ -21,7 +21,7 @@
               <span>{{user.role == 0?"我的请假单":"请假单列表"}}</span>
             </template>
             <el-menu-item index="2-1" ><p @click="bills(false, 2)" >全部</p></el-menu-item>
-            <el-menu-item index="2-2" ><p @click="bills(true, 1)">待审核</p></el-menu-item>
+            <el-menu-item index="2-2" v-if="user.role != 6"><p @click="bills(true, 1)">待审核</p></el-menu-item>
           </el-submenu>
             <el-menu-item index="3" @select="bills" @click="bills(false, 2)" v-if="user.role == 0">
               <i class="iconfont firerock-iconbaoxiaodan"></i>
@@ -202,13 +202,13 @@
                       </div>
                     </template>
                 </el-table-column>
-                <el-table-column label="操作" width="180" fixed="right" v-if="!isAuditList">
+                <el-table-column label="操作" width="180" fixed="right" v-if="!isAuditList && user.role != 6">
                     <template slot-scope="scope">
-                      <div v-if="user.role == 0">
+                      <div v-if="user.role == 0 ">
                         <el-button icon="el-icon-delete" circle size="mini"  @click.stop.native="deletes(scope.row)" v-if="scope.row.status != 0"></el-button>
                         <el-button icon="el-icon-edit" circle size="mini" @click.stop.native="editor(scope.row)" v-if="scope.row.status != 0"></el-button>
                       </div>
-                      <div v-if="user.role != 0">
+                      <div v-if="user.role != 0 ">
                         <el-button icon="el-icon-delete" circle size="mini"  @click.stop.native="deletes(scope.row)"></el-button>
                         <el-button icon="el-icon-edit" circle size="mini" @click.stop.native="editor(scope.row)"></el-button>
                       </div>

+ 8 - 6
fhKeeper/formulahousekeeper/timesheet/src/views/project/finance.vue

@@ -6,7 +6,7 @@
                 <el-form-item label="财务核算成本 | 月份选择" style="margin-top:5px;">
                 <el-date-picker size="small" v-model="date" :editable="false" format="yyyy-MM" value-format="yyyy-MM" @change="changeMonth" :clearable="false" type="month" placeholder="选择月份"></el-date-picker>
             </el-form-item>
-            <el-form-item style="float:right;">
+            <el-form-item style="float:right;" v-if="user.role == 1 || user.role == 2 || user.role == 4">
                 <el-link type="primary" :underline="false" @click="getTemplate()" >财务模板下载</el-link>
             </el-form-item>
             <!-- <el-form-item style="float:right;">
@@ -14,10 +14,10 @@
                         <el-link type="primary" :underline="false" >财务数据上传</el-link>
                     </el-upload>
             </el-form-item> -->
-            <el-form-item style="float:right;">
+            <el-form-item style="float:right;" v-if="user.role == 1 || user.role == 2 || user.role == 4">
                 <el-link type="primary" :underline="false" @click="importDialog = true;isUploading=false;">财务数据上传</el-link>
             </el-form-item>
-            <el-form-item style="float:right;">
+            <el-form-item style="float:right;" v-if="user.role == 1 || user.role == 2 || user.role == 4">
                 <el-link type="primary" :underline="false" @click="showItemDialog">自定义薪资项</el-link>
             </el-form-item>
             </el-form>
@@ -34,8 +34,9 @@
             <el-table-column prop="insuranceOld" label="养老保险" ></el-table-column>
             <el-table-column prop="insuranceMedical" label="医疗保险" ></el-table-column>
             <el-table-column prop="insuranceLosejob" label="失业保险" ></el-table-column>
+            <el-table-column prop="insuranceInjury" label="工伤保险" ></el-table-column>
             <el-table-column prop="houseFund" label="住房公积金" ></el-table-column>
-            <el-table-column prop="others" label="其他" ></el-table-column>
+            <!-- <el-table-column prop="others" label="其他" ></el-table-column> -->
             <el-table-column :label="item.fieldName" v-for="(item, index) in customCols" :key="item.id" :prop="index==0?'customField1':(index==1?'customField2':(index==2?'customField3':''))">
                 <template slot-scope="scope">
                     {{index==0?scope.row.customField1:(index==1?scope.row.customField2:(index==2?scope.row.customField3:''))}}
@@ -129,8 +130,9 @@
             <el-table-column prop="insuranceOld" label="养老保险" ></el-table-column>
             <el-table-column prop="insuranceMedical" label="医疗保险" ></el-table-column>
             <el-table-column prop="insuranceLosejob" label="失业保险" ></el-table-column>
+            <el-table-column prop="insuranceInjury" label="工伤保险" ></el-table-column>
             <el-table-column prop="houseFund" label="住房公积金" ></el-table-column>
-            <el-table-column prop="others" label="其他" ></el-table-column>
+            <!-- <el-table-column prop="others" label="其他" ></el-table-column> -->
             <el-table-column :label="item.fieldName" v-for="(item, index) in customCols" :key="item.id" :prop="index==0?'customField1':(index==1?'customField2':(index==2?'customField3':''))">
                 <template slot-scope="scope">
                     {{index==0?scope.row.customField1:(index==1?scope.row.customField2:(index==2?scope.row.customField3:''))}}
@@ -153,8 +155,8 @@
             <p>养老保险</p>
             <p>医疗保险</p>
             <p>失业保险</p>
+            <p>工伤保险</p>
             <p>住房公积金</p>
-            <p>其他</p>
             <p><el-input v-model="customFieldList.field1" placeholder="请输入自定义薪资项1名称" style="width:200px;" maxlength="8"></el-input></p>
             <p><el-input v-model="customFieldList.field2" placeholder="请输入自定义薪资项2名称" style="width:200px;" maxlength="8"></el-input></p>
             <p><el-input v-model="customFieldList.field3" placeholder="请输入自定义薪资项3名称" style="width:200px;" maxlength="8"></el-input></p>

+ 2 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/project/info.vue

@@ -165,7 +165,7 @@
             <div class="line"><span>手机号码</span><span>{{userDetail.phone}}</span></div>
             <div class="line"><span>角色</span><span>{{roleArray[userDetail.role]}}</span></div>
             <div class="line"><span>部门</span><span>{{userDetail.departmentName}}</span></div>
-            <div class="line" v-if="user.role>0&&user.role<=3"><span>成本</span><span>{{userDetail.cost}}元/小时</span></div>
+            <div class="line" v-if="user.role == 1 || user.role == 2 || user.role == 6"><span>成本</span><span>{{userDetail.cost}}元/小时</span></div>
             <div slot="footer" class="dialog-footer">
                 <el-button type="primary" @click="userDetailVisible = false" >确定</el-button>
             </div>
@@ -425,7 +425,7 @@
                 projectProfessionList:[],
                 modBaseCostData:[],
                 projectBaseCostData:[],
-                roleArray:["普通员工","超级管理员", "系统管理员", "公司高层","人事管理员", "项目管理员"],
+                roleArray:["普通员工","超级管理员", "系统管理员", "公司高层","财务管理员", "项目管理员"],
                 addBaseFormVisible:false,
                 addMembVisible:false,
                 addMembForm:{},

+ 9 - 9
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -21,16 +21,16 @@
                 <el-form-item v-if="user.company.packageProject==1">
                     <span style="margin-left:10px;margin-right:10px;color:#606266;">状态</span>
                     <el-select v-model="status" style="width:120px;"  placeholder="请选择" @change="searchList">
-                            <el-option label="全部" value=0 ></el-option>
-                            <el-option label="进行中" value=1 ></el-option>
-                            <el-option label="已完成" value=2 ></el-option>
-                            <el-option label="已撤销" value=3 ></el-option>
-                        </el-select>
+                        <el-option label="全部" value=0 ></el-option>
+                        <el-option label="进行中" value=1 ></el-option>
+                        <el-option label="已完成" value=2 ></el-option>
+                        <el-option label="已撤销" value=3 ></el-option>
+                    </el-select>
                 </el-form-item>
                 <!-- 项目成本基线条目 -->
                 <el-form-item style="float:right;"  v-if="user.company.packageProject == 1 && (user.role == 1||user.role == 2||user.role == 5)">
                     <el-link type="primary" :underline="false" @click="showBaseCostItemDialog">基线成本项</el-link>
-                </el-form-item> 
+                </el-form-item>
                 <el-form-item style="float:right;" v-if="user.role == 1||user.role == 2||user.role == 5">
                     <el-link type="primary" style="margin-left:5px;" :underline="false" href="./upload/项目导入模板.xlsx" download="项目导入模板.xlsx">模板下载</el-link>
                 </el-form-item>
@@ -44,7 +44,7 @@
                 </el-form-item>
                 <el-form-item style="float:right;" v-if="user.company.packageProject==1">
                     <router-link to="/projectGantt" >
-                    <el-link type="primary" :underline="false" >甘特图</el-link>
+                        <el-link type="primary" :underline="false" >甘特图</el-link>
                     </router-link>
                 </el-form-item>
             </el-form>
@@ -303,7 +303,7 @@
             <div class="line"><span>手机号码</span><span>{{userDetail.phone}}</span></div>
             <div class="line"><span>角色</span><span>{{roleArray[userDetail.role]}}</span></div>
             <div class="line"><span>部门</span><span>{{userDetail.departmentName}}</span></div>
-            <div class="line" v-if="user.role>0&&user.role<=3"><span>成本</span><span>{{userDetail.cost}}元/小时</span></div>
+            <div class="line" v-if="user.role == 1 || user.role == 2 || user.role == 6"><span>成本</span><span>{{userDetail.cost}}元/小时</span></div>
             <div slot="footer" class="dialog-footer">
                 <el-button type="primary" @click="userDetailVisible = false" >确定</el-button>
             </div>
@@ -504,7 +504,7 @@
                 addBaseItemDialog:false,
                 showBaseConfig:false,
                 customerList:[],
-                roleArray:["普通员工","超级管理员", "系统管理员", "公司高层","人事管理员", "项目管理员"],
+                roleArray:["普通员工","超级管理员", "系统管理员", "公司高层","财务管理员", "项目管理员"],
                 status:null,
                 statusTxt:["-","进行中","已完成","已撤销"],
                 importanceList:[{id:1,label:'正常'},{id:2,label:'紧急'},{id:3,label:'重要'},{id:4,label:'重要且紧急'}],

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/research/list.vue

@@ -108,7 +108,7 @@
     export default {
         data() {
             return {
-                roleArray:["普通员工","超级管理员", "系统管理员", "公司高层","人事管理员", "项目管理员"],
+                roleArray:["普通员工","超级管理员", "系统管理员", "公司高层","财务管理员", "项目管理员"],
                 status:null,
                 statusTxt:["-","进行中","已完成","已撤销"],
                 importanceList:[{id:1,label:'正常'},{id:2,label:'紧急'},{id:3,label:'重要'},{id:4,label:'重要且紧急'}],

+ 5 - 5
fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

@@ -178,7 +178,7 @@
                             <span style="float: right; color: #8492a6; font-size: 13px">具有填报日报,参与项目协作基础功能</span>
                         </el-option>
                         <el-option label="公司高层" :value="3"></el-option>
-                        <el-option label="人事管理员" :value="4"></el-option>
+                        <el-option label="财务管理员" :value="4"></el-option>
                         <el-option label="项目管理员" :value="5"></el-option> -->
                         <el-option v-for="item in roleDescArray" :label="item.label" :disabled="item.value==2&&user.role != 1" :value="item.value" :key="item.name">
                             <span style="float: left">{{item.label}}</span>
@@ -317,13 +317,13 @@
                 transferDialog: false,
                 containInvalid:1,
                 exportDialogVisible: false,
-                roleArray:["普通员工","超级管理员", "系统管理员", "公司高层","人事管理员", "项目管理员","公司领导"],
+                roleArray:["普通员工","超级管理员", "系统管理员", "公司高层","财务管理员", "项目管理员","公司领导"],
                 roleDescArray:[{label:"普通员工",value:0, desc:"填报日报,参与项目协作"},
                 {label:"系统管理员",value:2, desc:"具有除了创建系统管理员之外的全部功能"},
-                {label:"公司高层",value:3, desc:"查阅项目信息,人员工时情况"},
-                {label:"人事管理员",value:4, desc:"财务核算成本,费用报销审核,负责组织架构管理"},
+                // {label:"公司高层",value:3, desc:"查阅项目信息,人员工时情况"},
+                {label:"财务管理员",value:4, desc:"财务核算成本,费用报销审核,负责组织架构管理"},
                 {label:"项目管理员",value:5, desc:"创建和管理项目"},
-                {label:"公司领导",value:6, desc:"财务核算成本,查阅项目、人员工时和成本情况"},
+                {label:"公司领导",value:6, desc:"查看日报、工时成本统计、财务核算、项目和报表"},
                 ],
                 userSalaryList:[],
                 userSalaryListDialog: false,

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -98,7 +98,7 @@
                                     工作总时长:
                                     <!-- <span :style="parseFloat(item1.reportTime)>parseFloat(item1.calculateTime)+0.5?'color:red':''">{{item1.reportTime}}h</span> -->
                                     <span >{{item1.reportTime}}</span>h
-                                    <span v-if="user.role >=1 && user.role <=3"><span  style="margin-left:10px;">成本:</span>
+                                    <span v-if="user.role ==1 || user.role == 2 ||user.role == 6"><span  style="margin-left:10px;">成本:</span>
                                     <span >{{item1.cost}}</span>元</span>
                                 </span>
                             </span>

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/workflow/report.vue

@@ -70,7 +70,7 @@
                 roleArray:[
                 {label:"项目管理员",value:5},
                 {label:"部门主管",value:6},
-                {label:"人事管理员",value:4},
+                {label:"财务管理员",value:4},
                 ],
                 dialogVisible:false,
                 editNode:{},