Преглед изворни кода

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper

Min пре 1 година
родитељ
комит
fc08ae0f33

+ 4 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ExpenseSheetController.java

@@ -64,7 +64,7 @@ public class ExpenseSheetController {
     }
 
     @RequestMapping("/list")
-    public HttpRespMsg list(ExpenseSheet sheet,Integer sendState,String startDate, String endDate, @RequestParam Integer pageIndex, @RequestParam Integer pageSize) {
+    public HttpRespMsg list(ExpenseSheet sheet,Integer sendState,Integer projectId,String startDate, String endDate, @RequestParam Integer pageIndex, @RequestParam Integer pageSize) {
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
         List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部报销单");
@@ -75,13 +75,13 @@ public class ExpenseSheetController {
             }
         }
         sheet.setCompanyId(user.getCompanyId());
-        return expenseSheetService.queryList(sheet, startDate, endDate, pageIndex, pageSize);
+        return expenseSheetService.queryList(sheet,projectId, startDate, endDate, pageIndex, pageSize);
     }
 
     @RequestMapping("/getDetail")
-    public HttpRespMsg getDetail(Integer id) {
+    public HttpRespMsg getDetail(Integer id,Integer projectId) {
 
-        return expenseSheetService.getDetail(id);
+        return expenseSheetService.getDetail(id,projectId);
 
     }
 

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ExpenseSheetService.java

@@ -21,11 +21,11 @@ public interface ExpenseSheetService extends IService<ExpenseSheet> {
 
     HttpRespMsg delete(Integer id);
 
-    HttpRespMsg queryList(ExpenseSheet sheet, String startDate, String endDate, Integer pageIndex,  Integer pageSize);
+    HttpRespMsg queryList(ExpenseSheet sheet,Integer projectId, String startDate, String endDate, Integer pageIndex,  Integer pageSize);
 
     HttpRespMsg getNextCode(String userId);
 
-    HttpRespMsg getDetail(Integer id);
+    HttpRespMsg getDetail(Integer id ,Integer projectId);
 
     HttpRespMsg approve(Integer id);
 

+ 67 - 18
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java

@@ -413,7 +413,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
     }
 
     @Override
-    public HttpRespMsg queryList(ExpenseSheet sheet, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
+    public HttpRespMsg queryList(ExpenseSheet sheet,Integer projectId, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
         QueryWrapper<ExpenseSheet> queryWrapper = new QueryWrapper<ExpenseSheet>();
         //当前用户
         String token = request.getHeader("TOKEN");
@@ -492,22 +492,64 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
         if (!StringUtils.isEmpty(startDate) && !StringUtils.isEmpty(endDate)) {
             queryWrapper.between("create_date", startDate, endDate);
         }
-        IPage<ExpenseSheet> listIPager = expenseSheetMapper.selectPage(new Page<>(pageIndex, pageSize),
-                queryWrapper);
-        List<ExpenseSheet> records = listIPager.getRecords();
-        List<ExpenseMainType> expenseMainTypes = expenseMainTypeService.list(new QueryWrapper<ExpenseMainType>().eq("company_id", sheet.getCompanyId()).or().eq("is_system",1));
-        records.forEach(re->{
-            Optional<ExpenseMainType> first = expenseMainTypes.stream().filter(et -> et.getId().equals(re.getType())).findFirst();
-            if(first.isPresent()){
-                re.setExpenseMainTypeName(first.get().getName());
+        if (projectId!=null){
+            QueryWrapper<ExpenseItem> q = new QueryWrapper<ExpenseItem>();
+            q.eq("project_id",projectId);
+            List<ExpenseItem> expenseItems = expenseItemMapper.selectList(q);
+            if (expenseItems.size()==0){
+                Map<String, Object> map = new HashMap<>();
+                map.put("records", new ArrayList<ExpenseSheet>());
+                map.put("total", 0);
+                httpRespMsg.data = map;
+                return httpRespMsg;
+            }else {
+                List<Integer> expenseIds = expenseItems.stream().map(ExpenseItem::getExpenseId).collect(Collectors.toList());
+                queryWrapper.in("id",expenseIds);
+                IPage<ExpenseSheet> listIPager = expenseSheetMapper.selectPage(new Page<>(pageIndex, pageSize),
+                        queryWrapper);
+                List<ExpenseSheet> records = listIPager.getRecords();
+
+                List<ExpenseMainType> expenseMainTypes = expenseMainTypeService.list(new QueryWrapper<ExpenseMainType>().eq("company_id", sheet.getCompanyId()).or().eq("is_system",1));
+                records.forEach(re->{
+                    Optional<ExpenseMainType> first = expenseMainTypes.stream().filter(et -> et.getId().equals(re.getType())).findFirst();
+                    if(first.isPresent()){
+                        re.setExpenseMainTypeName(first.get().getName());
+                    }
+                });
+                if (records.size()>0){
+                    records.forEach(r->{
+                        List<ExpenseItem> items = expenseItems.stream()
+                                .filter(e -> e.getExpenseId().equals(r.getId())&&e.getProjectId().equals(projectId)).collect(Collectors.toList());
+                        double amount = items.stream().mapToDouble(item -> Optional.ofNullable(item.getAmount()).orElse(0.0)).sum();
+                        r.setTotalAmount(amount);
+                    });
+                }
+                Long total = listIPager.getTotal();
+                Map<String, Object> map = new HashMap<>();
+                map.put("records", records);
+                map.put("total", total);
+                httpRespMsg.data = map;
+                return httpRespMsg;
             }
-        });
-        Long total = listIPager.getTotal();
-        Map<String, Object> map = new HashMap<>();
-        map.put("records", records);
-        map.put("total", total);
-        httpRespMsg.data = map;
-        return httpRespMsg;
+        }else {
+            IPage<ExpenseSheet> listIPager = expenseSheetMapper.selectPage(new Page<>(pageIndex, pageSize),
+                    queryWrapper);
+            List<ExpenseSheet> records = listIPager.getRecords();
+
+            List<ExpenseMainType> expenseMainTypes = expenseMainTypeService.list(new QueryWrapper<ExpenseMainType>().eq("company_id", sheet.getCompanyId()).or().eq("is_system",1));
+            records.forEach(re->{
+                Optional<ExpenseMainType> first = expenseMainTypes.stream().filter(et -> et.getId().equals(re.getType())).findFirst();
+                if(first.isPresent()){
+                    re.setExpenseMainTypeName(first.get().getName());
+                }
+            });
+            Long total = listIPager.getTotal();
+            Map<String, Object> map = new HashMap<>();
+            map.put("records", records);
+            map.put("total", total);
+            httpRespMsg.data = map;
+            return httpRespMsg;
+        }
     }
 
     @Override
@@ -532,7 +574,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
     }
 
     @Override
-    public HttpRespMsg getDetail(Integer id) {
+    public HttpRespMsg getDetail(Integer id,Integer projectId) {
         String token = request.getHeader("TOKEN");
         ExpenseSheet expenseSheet = expenseSheetMapper.selectById(id);
         if(!StringUtils.isEmpty(expenseSheet.getFirstCheckerId())){
@@ -543,7 +585,12 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
             User user = userMapper.selectById(expenseSheet.getSecondCheckerId());
             expenseSheet.setSecondCheckerName(user.getName());
         }
-        List<ExpenseItem> list = expenseItemMapper.selectList(new QueryWrapper<ExpenseItem>().eq("expense_id", id));
+        QueryWrapper<ExpenseItem> q = new QueryWrapper<ExpenseItem>();
+        q.eq("expense_id", id);
+        if (projectId!=null){
+            q.eq("project_id",projectId);
+        }
+        List<ExpenseItem> list = expenseItemMapper.selectList(q);
         List<Project> Project = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", expenseSheet.getCompanyId()));
         ExpenseAuditSetting expenseAuditSetting = expenseAuditSettingMapper.selectById(expenseSheet.getCompanyId());
         for (ExpenseItem expenseItem : list) {
@@ -570,6 +617,8 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
             }
         }
         expenseSheet.setInvoiceList(list);
+        double amount = list.stream().mapToDouble(item -> Optional.ofNullable(item.getAmount()).orElse(0.0)).sum();
+        expenseSheet.setTotalAmount(amount);
         HttpRespMsg msg = new HttpRespMsg();
         msg.data = expenseSheet;
         return msg;

+ 16 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/expense/expense.vue

@@ -321,7 +321,15 @@
                 </el-select>
               </el-form-item>
               <!-- 填报日期 -->
-              <div style="display: inline-block;padding-left: 15px">
+              <div style="display: inline-block;">
+                <el-form-item :label="'项目'">
+                  <el-select v-model="selectProject" size="small" style="width: 162px" clearable>
+                    <el-option v-for="item in projectList" :label="item.projectName" :value="item.id">
+                      <span style="float: left">{{ item.projectName }}</span>
+                      <span style="float: right; color: #8492a6;">{{ item.projectCode }}</span>
+                    </el-option>
+                  </el-select>
+                </el-form-item>
                 <el-form-item :label="$t('fillinthedate')">
                   <el-date-picker v-model="date" type="daterange" value-format="yyyy-MM-dd" size="small"
                     :range-separator="$t('other.to')" :start-placeholder="$t('time.startDate')"
@@ -1192,6 +1200,8 @@ export default {
       }, // 发放数据
       sendStateList: [], // 发放状态列表
       dialogVisibleRelease: false, // 发放弹出框
+
+      selectProject: null, // 项目选择
     };
   },
   computed: {
@@ -1915,6 +1925,7 @@ export default {
         endDate: end,
         ownerId: this.ownerId,
         type: this.queryExpenseMainType,
+        projectId: this.selectProject ? this.selectProject : null,
       };
       if (this.isAuditList) {
         param.status = 1;
@@ -2033,7 +2044,10 @@ export default {
 
     // 获取查看单据的数据
     getParticulars(id) {
-      this.http.post('/expense-sheet/getDetail', { id: id },
+      this.http.post('/expense-sheet/getDetail', { 
+        id: id,
+        projectId: this.selectProject ? this.selectProject : '',
+      },
         res => {
           if (res.code == "ok") {
             this

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

@@ -133,7 +133,7 @@
                                     </span>
                                 </span>
                                 <span style="float:right;">
-                                    <el-link type="primary" v-if="user.timeType.enableNewWeeklyfill != 1" style="margin-right:10px;" :underline="false" @click="isSubstitude=false;fillInReport(-1,0)">{{$t('textLink.fillInTheWork')}}</el-link>
+                                    <el-link type="primary" v-if="user.timeType.enableNewWeeklyfill != 1 && user.companyId != '4374'" style="margin-right:10px;" :underline="false" @click="isSubstitude=false;fillInReport(-1,0)">{{$t('textLink.fillInTheWork')}}</el-link>
                                     <el-link v-if="reportTimeType.type != 0 && user.companyId != yuzhongCompId && user.timeType.enableNewWeeklyfill != 1 && user.companyId != 3092" type="primary" style="margin-right:10px;" :underline="false" @click="isSubstitude=false;fillInReportss()">{{$t('textLink.fillInAWeek')}}</el-link>
                                     <el-link v-if="user.timeType.enableNewWeeklyfill == 1" type="primary" style="margin-right:10px;" :underline="false" @click="isSubstitude=false;fillInReportCustom()">按周填报</el-link>
                                     <!-- <el-link type="primary" style="margin-right:10px;" :underline="false" @click="isSubstitude=false;fillInReportCustom()">按周填报</el-link> -->

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet_h5/src/views/index/index.vue

@@ -186,7 +186,7 @@
                 for (var i in list) {
                     if(list[i].name == '工时报告') {
                         this.routers.push({name: '查看日报',url: '/calendar',icon: 'description'})
-                        if(this.user.timeType.enableNewWeeklyfill != 1) { // 针对新版按周填报去掉填写日报
+                        if(this.user.timeType.enableNewWeeklyfill != 1 && this.user.companyId != 4374) { // 针对新版按周填报去掉填写日报
                             this.routers.push({name: '填写日报',url: '/edit',icon: 'edit'})
                         }
                         if (this.user.companyId != 3092) {