Kaynağa Gözat

合同增加相关项目显示

QuYueTing 5 ay önce
ebeveyn
işleme
07b1b82803

+ 3 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Contract.java

@@ -178,6 +178,9 @@ public class Contract extends Model<Contract> {
     @TableField(exist = false)
     private String secTypeName;
 
+    @TableField(exist = false)
+    private String projectName;
+
 
     @Override
     protected Serializable pkVal() {

+ 11 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ContractServiceImpl.java

@@ -88,6 +88,8 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
     private ContractTypeSecMapper contractTypeSecMapper;
     @Autowired
     private ContractPayCustomizedMapper contractPayCustomizedMapper;
+    @Autowired
+    private ProjectMapper projectMapper;
 
     /**
      * 分页查询合同
@@ -168,6 +170,12 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
             List<Map<String, Object>> contractLogs = contractLogMapper.selectMsg(user.getCompanyId());
             List<ContractCustom> customList = contractCustomMapper.selectList(new QueryWrapper<ContractCustom>().in("contract_id", contractCollect));
             List<ContractTypeSec> secTypeList = contractTypeSecMapper.selectList(new QueryWrapper<ContractTypeSec>().eq("company_id", user.getCompanyId()));
+            //关联项目
+            List<Project> projectList = new ArrayList<>();
+            if (contracts.size() > 0) {
+                projectList = projectMapper.selectList(new QueryWrapper<Project>().select("id, project_name").in("id", contracts.stream().map(Contract::getProjectId).collect(Collectors.toList())));
+            }
+
             for (Contract contract : contracts) {
                 ContractPageVO contractPageVO = new ContractPageVO();
                 List<ContractDocument> files = new ArrayList<>();
@@ -190,6 +198,9 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
                 contractPageVO.setRemarks(contract.getRemarks());
                 contractPageVO.setAmounts(contract.getAmounts());
                 contractPageVO.setProjectId(contract.getProjectId());
+                if (contract.getProjectId() != null) {
+                    projectList.stream().filter(project -> project.getId().equals(contract.getProjectId())).findFirst().ifPresent(project -> contractPageVO.setProjectName(project.getProjectName()));
+                }
                 contractPageVO.setPayment(contract.getPayment());
                 contractPageVO.setNextPaymentDate(contract.getNextPaymentDate());
                 contractPageVO.setNextPaymentAmount(contract.getNextPaymentAmount());

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceExcludeProjectServiceImpl.java

@@ -63,7 +63,7 @@ public class FinanceExcludeProjectServiceImpl extends ServiceImpl<FinanceExclude
 
         List<FinanceExcludeProject> resList = financeExcludeProjectMapper
                 .selectList(new LambdaQueryWrapper<FinanceExcludeProject>()
-                        .eq(FinanceExcludeProject::getProjectId,user.getCompanyId())
+                        .eq(FinanceExcludeProject::getCompanyId,user.getCompanyId())
                         .eq(FinanceExcludeProject::getUseYM,useYM));
         if(projectCount == resList.size()){
             map.put("isAll",1);

+ 14 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java

@@ -184,8 +184,12 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             //获取人员该月份填写的日报的总时长
             List<Map<String, Object>> userTimeList = null;
             if (syncUserCost || syncHistoryReport) {
-//                userTimeList = reportMapper.getUserWorkingTimeByRange(companyId, startStr, endStr);
                 userTimeList = reportMapper.getUserWorkingTimeByRangeWithExclude(companyId, yearMonth,startStr, endStr);
+                if (userTimeList.size() == 0) {
+                    msg.setError("当月没有相关项目的日报数据,请检查是否设置了不参与项目");
+                    return msg;
+                }
+
             }
 
             //设置财务核算薪资模板配置
@@ -384,6 +388,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 }
 
                 if (first != null && first.isPresent()) {
+                    System.out.println("匹配到的人员:"+first.get().getName());
                     finance.setUserId(first.get().getId());
                     BigDecimal total = new BigDecimal(0);
                     if (salaryCell != null) {
@@ -512,14 +517,22 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                             BigDecimal db = timeType.getMonthDays().multiply(new BigDecimal(timeType.getAllday()));
                             localUser.setCost(total.divide(db, 6, BigDecimal.ROUND_HALF_UP));
                         } else {
+                            boolean find = false;
                             for (int i=0;i<userTimeList.size(); i++) {
                                 Map<String, Object> map = userTimeList.get(i);
                                 if (map.get("creatorId").equals(finance.getUserId())) {
+                                    find = true;
                                     double time = (Double)map.get("workingTime");
                                     localUser.setCost(total.divide(new BigDecimal(time), 6, BigDecimal.ROUND_HALF_UP));
                                     break;
                                 }
                             }
+                            if (!find) {
+                                //没有找到对应的工时,按标准工时来
+                                System.out.println("没有找到对应的工时,按标准工时来, userId="+finance.getUserId()+", jobNumber="+finance.getJobNumber());
+                                BigDecimal db = timeType.getMonthDays().multiply(new BigDecimal(timeType.getAllday()));
+                                localUser.setCost(total.divide(db, 6, BigDecimal.ROUND_HALF_UP));
+                            }
                         }
 
                         updateUserList.add(localUser);

+ 10 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/contract/components/contractManagement.vue

@@ -81,6 +81,7 @@
     <el-table :data="contractList" v-loading="listLoading" :height="tableHeight" border highlight-current-row>
       <el-table-column prop="number" :label="$t('contractno')" min-width="190"></el-table-column>
       <el-table-column prop="name" :label="$t('he-tong-ming-cheng')" min-width="190"></el-table-column>
+      <el-table-column prop="projectName" :label="$t('rselatedprojects')" min-width="190"></el-table-column>
       <el-table-column prop="amounts" :label="$t('contractamount')" min-width="135" align="right" header-align="center">
         <span slot-scope="scope">¥ {{scope.row.amounts ? scope.row.amounts.toFixed(2) : '0.00'}}</span>
       </el-table-column>
@@ -256,6 +257,10 @@
           <el-form-item :label="$t('he-tong-ming-cheng')">
             {{contractForm.name}}
           </el-form-item>
+          <el-form-item :label="$t('rselatedprojects')">
+            {{contractForm.projectName}}
+          </el-form-item>
+          
           <el-form-item :label="$t('contractamount')">
             ¥ {{contractForm.amounts}}
           </el-form-item>
@@ -917,6 +922,11 @@ export default {
           }
           this.submitLoading = true
           delete this.contractForm.files
+          delete this.contractForm.msg
+          delete this.contractForm.nextPaymentDate
+          delete this.contractForm.nextPaymentAmount
+          delete this.contractForm.payCustomizedData
+          delete this.contractForm.checkerId
           this.contractForm.paymentListStr = JSON.stringify(this.contractPaymentList);
           this.http.post(this.dialogTitle == this.$t('add') ? '/contract/addContract' : '/contract/editContract',this.contractForm,
           res => {