|
@@ -129,12 +129,17 @@ public class FinanceMonthlyWorktimeServiceImpl extends ServiceImpl<FinanceMonthl
|
|
|
@Override
|
|
|
public HttpRespMsg getByMonth(Integer companyId, String ymonth, Integer reGenerate, HttpServletRequest request) throws Exception {
|
|
|
//获取该月份的数据,如果没有自动生成
|
|
|
+ HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
String token = request.getHeader("token");
|
|
|
User user = userMapper.selectById(token);
|
|
|
FinanceMonthlyWorktime financeMonthlyWorktime = financeMonthlyWorktimeMapper.selectOne(new LambdaQueryWrapper<FinanceMonthlyWorktime>().eq(FinanceMonthlyWorktime::getCompanyId, companyId).eq(FinanceMonthlyWorktime::getYmonth, ymonth));
|
|
|
Integer detailCount = 0;
|
|
|
if (financeMonthlyWorktime != null) {
|
|
|
if (reGenerate== 1) {
|
|
|
+ if (financeMonthlyWorktime.getStatus() == 1) {
|
|
|
+ httpRespMsg.setError("已定稿,无法重置");
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
//删除明细数据
|
|
|
fmwDetailMapper.delete(new LambdaQueryWrapper<FmwDetail>().eq(FmwDetail::getFmwId, financeMonthlyWorktime.getId()));
|
|
|
} else {
|
|
@@ -201,10 +206,6 @@ public class FinanceMonthlyWorktimeServiceImpl extends ServiceImpl<FinanceMonthl
|
|
|
departmentList.stream().filter(d->d.getDepartmentId().equals(report.getDeptId())).findFirst().ifPresent(d->{
|
|
|
fmwDetail.setDeptCode(d.getDeptCode());
|
|
|
fmwDetail.setDeptName(d.getDepartmentName());
|
|
|
- //为提高可读性,从erpOrderInfo表中获取部门名称
|
|
|
- erpOrderInfoList.stream().filter(e->e.getDeptId().equals(d.getDeptCode())).findFirst().ifPresent(e->{
|
|
|
- fmwDetail.setDeptName(e.getDeptName());
|
|
|
- });
|
|
|
});
|
|
|
setFmwTime(fmwDetail, report);
|
|
|
//从assistList中获取协作工时
|
|
@@ -299,23 +300,26 @@ public class FinanceMonthlyWorktimeServiceImpl extends ServiceImpl<FinanceMonthl
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- List<FmwDetail> fmwDetails = insertDataList.stream().filter(fmwDetail -> fmwDetail.getDeptId().equals(deptId)).collect(Collectors.toList());
|
|
|
- double assistDeptTotalTime = fmwDetails.stream().reduce(0.0, (a, b) -> a + b.getMaintanceTime() + b.getDebugTime() + b.getWaitingTime(), Double::sum);
|
|
|
- if (assistDeptTotalTime > 0) {
|
|
|
- //计算总工时: 用维修组装工时,调试工时和等料工时相加
|
|
|
- insertDataList.forEach(fmwDetail -> {
|
|
|
- //计算每一个项目的部门内部工时占比,按比例分摊公共工时
|
|
|
- if (fmwDetail.getProjectId().equals(publicReportDeptItem.getProjectId())) {
|
|
|
- double curProjectTime = fmwDetail.getMaintanceTime() + fmwDetail.getDebugTime() + fmwDetail.getWaitingTime();
|
|
|
- double assignTime = curProjectTime / assistDeptTotalTime * publicReportDeptItem.getWorkingTime();
|
|
|
- fmwDetail.setPublicTime(assignTime);
|
|
|
- }
|
|
|
- });
|
|
|
} else {
|
|
|
- throw new Exception("存在部门公共工时无法分配,来源deptId=="+deptId);
|
|
|
+ //本部门也没有协作其他部门产生工单工时
|
|
|
+ throw new Exception("公共工时无法分配,因为本部门没有协作其他部门产生工单工时,deptId=="+deptId);
|
|
|
}
|
|
|
+
|
|
|
+// List<FmwDetail> fmwDetails = insertDataList.stream().filter(fmwDetail -> fmwDetail.getDeptId().equals(deptId)).collect(Collectors.toList());
|
|
|
+// double assistDeptTotalTime = fmwDetails.stream().reduce(0.0, (a, b) -> a + b.getAssistTime(), Double::sum);
|
|
|
+// if (assistDeptTotalTime > 0) {
|
|
|
+// //计算总工时: 用维修组装工时,调试工时和等料工时相加
|
|
|
+// insertDataList.forEach(fmwDetail -> {
|
|
|
+// //计算每一个项目的部门内部工时占比,按比例分摊公共工时
|
|
|
+// if (fmwDetail.getProjectId().equals(publicReportDeptItem.getProjectId())) {
|
|
|
+// double curProjectTime = fmwDetail.getMaintanceTime() + fmwDetail.getDebugTime() + fmwDetail.getWaitingTime();
|
|
|
+// double assignTime = curProjectTime / assistDeptTotalTime * publicReportDeptItem.getWorkingTime();
|
|
|
+// fmwDetail.setPublicTime(assignTime);
|
|
|
+// }
|
|
|
+// });
|
|
|
+// } else {
|
|
|
+// throw new Exception("存在部门公共工时无法分配,来源deptId=="+deptId);
|
|
|
+// }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -328,9 +332,8 @@ public class FinanceMonthlyWorktimeServiceImpl extends ServiceImpl<FinanceMonthl
|
|
|
//查询数据
|
|
|
List<FmwDetail> details = fmwDetailMapper.selectList(new QueryWrapper<FmwDetail>().eq("fmw_id", financeMonthlyWorktime.getId()));
|
|
|
financeMonthlyWorktime.setDetailList(details);
|
|
|
- HttpRespMsg msg = new HttpRespMsg();
|
|
|
- msg.data = financeMonthlyWorktime;
|
|
|
- return msg;
|
|
|
+ httpRespMsg.data = financeMonthlyWorktime;
|
|
|
+ return httpRespMsg;
|
|
|
}
|
|
|
|
|
|
private void setFmwTime(FmwDetail fmwDetail, Report report) {
|