Browse Source

Merge branch 'master' of http://114.55.67.98:8070/Natural_p1/zjugis_OA

songxy 1 year ago
parent
commit
10098a4c4c

+ 10 - 56
client_h5/src/pages/outsourcing-apply/index.vue

@@ -9,7 +9,13 @@
               label="合同名称"
               placeholder="合同名称"
               readonly
-              :rules="[{ required: true, message: '未获取合同名称' }]"
+          />
+          <van-field
+              v-model="formData.planSignDate"
+              name="签订时间"
+              label="签订时间"
+              placeholder="签订时间"
+              readonly
           />
           <van-field
               v-model="formData.contractNumber"
@@ -17,7 +23,6 @@
               label="合同编号"
               placeholder="合同编号"
               readonly
-              :rules="[{ required: true, message: '未获取合同编号' }]"
           />
           <van-field
               v-model="formData.contractAmount"
@@ -25,7 +30,6 @@
               label="外包金额(元)"
               placeholder="外包金额(元)"
               readonly
-              :rules="[{ required: true, message: '未获取外包金额(元)' }]"
           />
           <van-field
               v-model="formData.contractOn"
@@ -33,7 +37,6 @@
               label="合同拿出日期"
               placeholder="合同拿出日期"
               readonly
-              :rules="[{ required: true, message: '未获取合同拿出日期' }]"
           />
           <van-field
               v-model="formData.contractOff"
@@ -41,15 +44,13 @@
               label="合同拿回日期"
               placeholder="合同拿回日期"
               readonly
-              :rules="[{ required: true, message: '未获取合同拿回日期' }]"
           />
           <van-field
-              v-model="formData.subReason"
+              v-model="formData.reason"
               name="外包原因细化"
               label="外包原因细化"
               placeholder="外包原因细化"
               readonly
-              :rules="[{ required: true, message: '未获取外包原因细化' }]"
           />
           <van-field
               v-model="formData.bz"
@@ -57,7 +58,6 @@
               label="备注"
               placeholder="备注"
               readonly
-              :rules="[{ required: true, message: '未获取备注' }]"
           />
         </van-cell-group>
       </van-form>
@@ -71,7 +71,6 @@
               label="项目名称"
               placeholder="项目名称"
               readonly
-              :rules="[{ required: true, message: '未获取项目名称' }]"
           />
           <van-field
               v-model="formData.project.xmbh"
@@ -79,7 +78,6 @@
               label="项目编号"
               placeholder="项目编号"
               readonly
-              :rules="[{ required: true, message: '未获取项目编号' }]"
           />
           <van-field
               v-model="formData.contract.name"
@@ -87,7 +85,6 @@
               label="主合同名称"
               placeholder="主合同名称"
               readonly
-              :rules="[{ required: true, message: '未获取主合同名称' }]"
           />
           <van-field
               v-model="formData.contract.contractNumber"
@@ -95,7 +92,6 @@
               label="主合同编号"
               placeholder="主合同编号"
               readonly
-              :rules="[{ required: true, message: '未获取主合同编号' }]"
           />
           <van-field
               v-model="formData.contract.contractAmount"
@@ -103,7 +99,6 @@
               label="主合同金额"
               placeholder="主合同金额"
               readonly
-              :rules="[{ required: true, message: '未获取主合同金额' }]"
           />
           <van-field
               v-model="formData.project.zrbm"
@@ -111,7 +106,6 @@
               label="责任部门"
               placeholder="责任部门"
               readonly
-              :rules="[{ required: true, message: '未获取责任部门' }]"
           />
 
         </van-cell-group>
@@ -121,58 +115,18 @@
       <van-form required="true" ref="form">
         <van-cell-group inset>
           <van-field
-              v-model="formData.clientName"
+              v-model="formData.assigneeName"
               name="委托方"
               label="委托方"
               placeholder="委托方"
               readonly
-              :rules="[{ required: true, message: '未获取委托方' }]"
-          />
-          <van-field
-              v-model="formData.clientNumber"
-              name="委托方编号"
-              label="委托方编号"
-              placeholder="委托方编号"
-              readonly
-              :rules="[{ required: true, message: '未获取委托方编号' }]"
           />
           <van-field
-              v-model="formData.assigneeName"
+              v-model="formData.customerName"
               name="受托方"
               label="受托方"
               placeholder="受托方"
               readonly
-              :rules="[{ required: true, message: '未获取受托方' }]"
-          />
-          <van-field
-              v-model="formData.contract.areaManager"
-              name="区域经理"
-              label="区域经理"
-              placeholder="区域经理"
-              readonly
-              :rules="[{ required: true, message: '未获取区域经理' }]"
-          />
-        </van-cell-group>
-      </van-form>
-    </card>
-    <card title="到期提醒" style="height: auto">
-      <van-form required="true" ref="form">
-        <van-cell-group inset>
-          <van-field
-              v-model="formData.isRemindExpiryc"
-              name="是否到期提醒"
-              label="是否到期提醒"
-              placeholder="是否到期提醒"
-              readonly
-              :rules="[{ required: true, message: '未获取是否到期提醒' }]"
-          />
-          <van-field
-              v-model="formData.planSignDate"
-              name="合同预计签订时间"
-              label="合同预计签订时间"
-              placeholder="合同预计签订时间"
-              readonly
-              :rules="[{ required: true, message: '未获取合同预计签订时间' }]"
           />
         </van-cell-group>
       </van-form>

+ 33 - 0
client_h5/src/pages/subcontract-apply/index.scss

@@ -0,0 +1,33 @@
+.van-cell-group {
+  margin: 0px;
+}
+.van-overlay {
+  background: rgba(0,0,0,0.3);
+}
+.add_btn {
+  background-color: #1989fa;
+  padding: 5px 10px;
+  border: 0px;
+  outline: none;
+  font-size: 13px;
+  color: #fff;
+  border-radius: 2px;
+}
+.detail-popup {
+  >.title {
+    font-size: 15px;
+    padding-left: 10px;
+  }
+  >.fixed-btn {
+    padding: 15px;
+  }
+}
+  :deep(.van-swipe-cell__right) {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    >button {
+      height: 50%;
+    }
+  }

+ 258 - 0
client_h5/src/pages/subcontract-apply/index.vue

@@ -0,0 +1,258 @@
+<template>
+  <flow-form :data="formData" @submit="submitNextActivity">
+    <card title="基本信息" style="height: auto">
+      <van-form required="true" ref="form">
+        <van-cell-group inset>
+          <van-field
+              v-model="formData.name"
+              name="合同名称"
+              label="合同名称"
+              placeholder="合同名称"
+              readonly
+          />
+          <van-field
+              v-model="formData.planSignDate"
+              name="签订时间"
+              label="签订时间"
+              placeholder="签订时间"
+              readonly
+          />
+          <van-field
+              v-model="formData.contractNumber"
+              name="合同编号"
+              label="合同编号"
+              placeholder="合同编号"
+              readonly
+          />
+          <van-field
+              v-model="formData.contractAmount"
+              name="分包金额(元)"
+              label="分包金额(元)"
+              placeholder="分包金额(元)"
+              readonly
+          />
+          <van-field
+              v-model="formData.contractOn"
+              name="合同拿出日期"
+              label="合同拿出日期"
+              placeholder="合同拿出日期"
+              readonly
+          />
+          <van-field
+              v-model="formData.contractOff"
+              name="合同拿回日期"
+              label="合同拿回日期"
+              placeholder="合同拿回日期"
+              readonly
+          />
+          <van-field
+              v-model="formData.reason"
+              name="分包理由"
+              label="分包理由"
+              placeholder="分包理由"
+              readonly
+          />
+          <van-field
+              v-model="formData.purchaseRequirements"
+              name="分包采购内容需求"
+              label="分包采购内容需求"
+              placeholder="分包采购内容需求"
+              readonly
+          />
+          <van-field
+              v-model="formData.bz"
+              name="备注"
+              label="备注"
+              placeholder="备注"
+              readonly
+          />
+        </van-cell-group>
+      </van-form>
+    </card>
+    <card title="项目信息" style="height: auto">
+      <van-form required="true" ref="form">
+        <van-cell-group inset>
+          <van-field
+              v-model="formData.project.xmmc"
+              name="项目名称"
+              label="项目名称"
+              placeholder="项目名称"
+              readonly
+          />
+          <van-field
+              v-model="formData.project.xmbh"
+              name="项目编号"
+              label="项目编号"
+              placeholder="项目编号"
+              readonly
+          />
+          <van-field
+              v-model="formData.contract.name"
+              name="主合同名称"
+              label="主合同名称"
+              placeholder="主合同名称"
+              readonly
+          />
+          <van-field
+              v-model="formData.contract.contractNumber"
+              name="主合同编号"
+              label="主合同编号"
+              placeholder="主合同编号"
+              readonly
+          />
+          <van-field
+              v-model="formData.contract.contractAmount"
+              name="主合同金额"
+              label="主合同金额"
+              placeholder="主合同金额"
+              readonly
+          />
+          <van-field
+              v-model="formData.project.zrbm"
+              name="责任部门"
+              label="责任部门"
+              placeholder="责任部门"
+              readonly
+          />
+
+        </van-cell-group>
+      </van-form>
+    </card>
+    <card title="甲乙方信息" style="height: auto">
+      <van-form required="true" ref="form">
+        <van-cell-group inset>
+          <van-field
+              v-model="formData.assigneeName"
+              name="委托方"
+              label="委托方"
+              placeholder="委托方"
+              readonly
+          />
+
+          <van-field
+              v-model="formData.customerName"
+              name="受托方"
+              label="受托方"
+              placeholder="受托方"
+              readonly
+          />
+
+        </van-cell-group>
+      </van-form>
+    </card>
+  </flow-form>
+</template>
+
+<script setup lang="ts">
+import {useRoute} from 'vue-router';
+import {FlowDTO, getNextActivity} from '@/service/flow';
+import reqest from "@/utils/request";
+import FlowForm from '@/components/flowForm.vue';
+import Card from '@/components/card.vue';
+import CardCell from '@/components/cardCell.vue';
+import {DICT_TYPE, getDictLabel} from "@/utils/dict";
+
+const route = useRoute();
+const form = ref(null);
+
+interface FormDataType {
+}
+
+const formData = ref<FormDataType>({
+  contract: {},
+  project: {}
+})
+const detailData = ref({})
+
+
+const {activityInstanceId, participant, flowInstanceId, read} = route.query as {
+  activityInstanceId: string;
+  participant: string;
+  flowInstanceId: string;
+  read: string;
+};
+const activityData: FlowDTO = {
+  activityInstanceId,
+  participantId: participant,
+  flowOpinion: ''
+}
+const submitNextActivity = async (NextActivity: () => Promise<any>) => {
+  NextActivity();
+};
+const jsonToFormData = (json: any): FormData | null => {
+  const keys: string[] = Object.keys(json)
+  if (keys.length > 0) {
+    const formData = new FormData();
+    keys.forEach((key) => {
+      formData.append(key, (json[key] instanceof Object) ? JSON.stringify(json[key]) : json[key]);
+    });
+    return formData;
+  }
+  return null;
+}
+
+
+/** 初始化表单数据 */
+const initFormData = async () => {
+  const result = await reqest.get(`/business/flow/contract-sub/mobileAdd?flowInstanceId=${flowInstanceId}`)
+
+
+  formData.value = result.data;
+  formData.project = result.data.project;
+  formData.contract = result.data.contract;
+
+
+  formData.value.subShareWayText = getDictLabel(DICT_TYPE.SUBCONTRACT_SHARE_WAY, formData.value.subShareWay);
+
+  const isRemindExpiry = formData.value.isRemindExpiry;
+  if (isRemindExpiry != null) {
+    let isRemindExpiryc;
+    switch (isRemindExpiry) {
+      case 0:
+        isRemindExpiryc = "否";
+        break;
+      case 1:
+        isRemindExpiryc = "是";
+        break
+      default:
+        isRemindExpiryc = "";
+    }
+    formData.value.isRemindExpiryc = isRemindExpiryc;
+  }
+
+  let signc;
+  const sign = formData.value.isSign;
+  if (sign != null) {
+    switch (sign) {
+      case 0:
+        signc = "否"
+        break;
+      case 1:
+        signc = "是";
+        break;
+      default:
+        signc = "";
+        break;
+    }
+    formData.value.isSignc = signc;
+  }
+}
+
+
+/** 初始化 */
+onMounted(() => {
+  initFormData()
+})
+</script>
+
+<style lang="scss" scoped>
+@import "./index.scss";
+
+::v-deep .van-field__label {
+  width: auto;
+}
+
+::v-deep .van-field__control {
+  text-align: right;
+}
+</style>

+ 8 - 0
client_h5/src/router/routes.ts

@@ -221,6 +221,14 @@ const routes: RouteRecordRaw[] = [
         },
         component: () => import("@/pages/contract-sub/index.vue"),
       },
+      {
+        path: "subcontract-apply",
+        name: "subcontract-apply",
+        meta: {
+          title: "分包合同签订",
+        },
+        component: () => import("@/pages/subcontract-apply/index.vue"),
+      },
       {
         path: "contract-out",
         name: "contract-out",

+ 5 - 0
zjugis-business/src/main/java/com/zjugis/business/controller/ContractMessageController.java

@@ -36,6 +36,11 @@ public class ContractMessageController {
         return CommonResult.success(contractMessageService.page(contractMessageDto));
     }
 
+    @GetMapping("/contract-message/home/page")
+    public CommonResult<Page<ContractMessageResponse>> homePage(ContractMessageDto contractMessageDto) {
+        return CommonResult.success(contractMessageService.homePage(contractMessageDto));
+    }
+
     @PostMapping("/contract-message/count-amount")
     public CommonResult<ContractMessageCountResp> messageCount(@RequestBody ContractMessageDto messageDto) {
         return CommonResult.success(contractService.messageCount(messageDto));

+ 2 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/contractSub/controller/vo/ContractSubVO.java

@@ -169,5 +169,7 @@ public class ContractSubVO {
     private String projectTypeCode;
     private String xzqh;
     private Contract contract;
+    private String customerName;
+
 
 }

+ 7 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/contractSub/service/FlowContractSubService.java

@@ -179,6 +179,13 @@ public class FlowContractSubService {
             Contract main = contractService.selectByPrimaryKey(entity.getParentId());
             vo.setContract(main);
         }
+
+        if (StringUtils.isNotBlank(entity.getCustomerId())) {
+            Supplier supplier=supplierService.queryById(entity.getCustomerId());
+            if(supplier!=null){
+                vo.setCustomerName(supplier.getCustomerName());
+            }
+        }
         return vo;
     }
 

+ 2 - 0
zjugis-business/src/main/java/com/zjugis/business/service/ContractMessageService.java

@@ -53,5 +53,7 @@ public interface ContractMessageService {
     int deleteByIdList(List<String> ids);
 
     void addByReturnMoney(ContractReturnMoney contractReturnMoney);
+
+    Page<ContractMessageResponse> homePage(ContractMessageDto contractMessageDto);
 }
 

+ 21 - 0
zjugis-business/src/main/java/com/zjugis/business/service/impl/ContractMessageServiceImpl.java

@@ -13,10 +13,13 @@ import com.zjugis.business.mapper.ProjectMapper;
 import com.zjugis.business.service.ContractMessageService;
 import com.zjugis.business.service.ContractService;
 import com.zjugis.framework.common.pojo.CommonResult;
+import com.zjugis.framework.security.core.util.SecurityFrameworkUtils;
 import com.zjugis.module.infra.api.ding.DingApi;
 import com.zjugis.module.infra.api.ding.dto.DingMessageDto;
 import com.zjugis.module.system.api.dept.DeptApi;
 import com.zjugis.module.system.api.dept.dto.DeptRespDTO;
+import com.zjugis.module.system.api.permission.PermissionApi;
+import com.zjugis.module.system.api.permission.dto.DeptDataPermissionRespDTO;
 import com.zjugis.module.system.api.user.AdminUserApi;
 import com.zjugis.module.system.api.user.dto.AdminUserRespDTO;
 import org.apache.commons.lang3.StringUtils;
@@ -54,6 +57,9 @@ public class ContractMessageServiceImpl implements ContractMessageService {
     @Autowired
     private DeptApi deptApi;
 
+    @Autowired
+    private PermissionApi permissionApi;
+
     @Autowired
     private AdminUserApi adminUserApi;
 
@@ -138,6 +144,21 @@ public class ContractMessageServiceImpl implements ContractMessageService {
         }
     }
 
+    /**
+     * @param contractMessageDto
+     * @return
+     */
+    @Override
+    public Page<ContractMessageResponse> homePage(ContractMessageDto contractMessageDto) {
+        CommonResult<DeptDataPermissionRespDTO> deptDataPermissionRes = permissionApi.getDeptDataPermission(SecurityFrameworkUtils.getLoginUserId());
+        DeptDataPermissionRespDTO deptPermissions = deptDataPermissionRes.getCheckedData();
+        if(!deptPermissions.getAll()){
+            contractMessageDto.setDeptIds(deptPermissions.getDeptIds());
+        }
+        Page<ContractMessage> page = new Page<>(contractMessageDto.getPageNo(),contractMessageDto.getPageSize());
+        return contractMessageMapper.page(page,contractMessageDto);
+    }
+
     private void sendMsg(Contract contract,String content) {
         Project project = projectMapper.selectById(contract.getProjectId());
         if(StringUtils.isNotBlank(project.getXmjlId())) {

+ 7 - 1
zjugis-business/src/main/resources/mapper/oracle/ContractMessageMapper.xml

@@ -7,7 +7,7 @@
         LEFT JOIN CONTRACT_RETURN_MONEY T1 on T1.ID = cm.BUSINESS_ID and cm.MESSAGE_TYPE = 2
         LEFT JOIN CONTRACT_INVOICE T2 on T2.ID = T1.CONTRACT_INVOICE_ID
         LEFT JOIN CONTRACT T3 on T3.ID = cm.CONTRACT_ID and cm.MESSAGE_TYPE = 1
-        <if test="params != null and params.deptId != null and params.deptId != ''">
+        <if test="(params != null and params.deptId != null and params.deptId != '') or (params != null  and params.deptIds != null  and params.deptIds.size > 0)">
             RIGHT JOIN CONTRACT c ON c.ID = cm.CONTRACT_ID
             RIGHT JOIN PROJECT p ON p.ID = c.PROJECT_ID
         </if>
@@ -25,6 +25,12 @@
             <if test="params != null and params.messageType != null ">
                 AND cm.MESSAGE_TYPE = #{params.messageType,jdbcType=INTEGER}
             </if>
+            <if test="params != null  and params.deptIds != null  and params.deptIds.size > 0">
+                AND p.ZRBM_ID in
+                <foreach collection="params.deptIds" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
         </where>
         ORDER BY cm.CREATE_TIME DESC
     </select>

+ 3 - 2
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/controller/admin/staff/StaffStatisticController.java

@@ -26,11 +26,12 @@ public class StaffStatisticController {
 
     /**
      * 获取员工统计信息
+     *
      * @return
      */
     @GetMapping("/get")
-    public CommonResult<StatisticInfoVO> getStatisticResult(@RequestParam(value = "deptId",required = false) String deptId) {
-        StatisticInfoVO statisticResult = staffStatisticService.getStatisticResult(deptId);
+    public CommonResult<StatisticInfoVO> getStatisticResult() {
+        StatisticInfoVO statisticResult = staffStatisticService.getStatisticResult(null);
         return success(statisticResult);
     }
 }

+ 1 - 1
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/service/staff/StaffStatisticService.java

@@ -15,5 +15,5 @@ public interface StaffStatisticService {
      * 获取用户统计信息
      *
      */
-    StatisticInfoVO getStatisticResult(String deptId);
+    StatisticInfoVO getStatisticResult(String userId);
 }

+ 15 - 6
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/service/staff/StaffStatisticServiceImpl.java

@@ -4,7 +4,9 @@ package com.zjugis.module.adm.service.staff;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.zjugis.framework.common.pojo.CommonResult;
+import com.zjugis.framework.datapermission.core.annotation.DataPermission;
 import com.zjugis.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.zjugis.framework.security.core.util.SecurityFrameworkUtils;
 import com.zjugis.module.adm.controller.admin.staff.vo.records.*;
 import com.zjugis.module.adm.dal.dataobject.staff.CollegeDO;
 import com.zjugis.module.adm.dal.dataobject.staff.StaffRecordSDO;
@@ -13,8 +15,11 @@ import com.zjugis.module.system.api.dept.DeptApi;
 import com.zjugis.module.system.api.dept.DeptLeaderApi;
 import com.zjugis.module.system.api.dept.dto.DeptLeaderRespDTO;
 import com.zjugis.module.system.api.dept.dto.DeptRespDTO;
+import com.zjugis.module.system.api.permission.PermissionApi;
+import com.zjugis.module.system.api.permission.dto.DeptDataPermissionRespDTO;
 import com.zjugis.module.system.api.user.AdminUserApi;
 import com.zjugis.module.system.api.user.dto.AdminUserRespDTO;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -40,6 +45,9 @@ public class StaffStatisticServiceImpl implements StaffStatisticService {
     @Resource
     private AdminUserApi userApi;
 
+    @Resource
+    private PermissionApi permissionApi;
+
     @Resource
     private RecordsMapper recordsMapper;
 
@@ -51,15 +59,16 @@ public class StaffStatisticServiceImpl implements StaffStatisticService {
      * 获取用户统计信息
      */
     @Override
-    public StatisticInfoVO getStatisticResult(String deptId) {
+    public StatisticInfoVO getStatisticResult(String userId) {
+        if (StringUtils.isNotBlank(SecurityFrameworkUtils.getLoginUserId())) {
+            userId = SecurityFrameworkUtils.getLoginUserId();
+        }
 
+        DeptDataPermissionRespDTO dto = permissionApi.getDeptDataPermission(userId).getCheckedData();
         StatisticInfoVO statisticInfoVO = new StatisticInfoVO();
         List<String> userIds = new ArrayList<>();
-        if (StrUtil.isNotEmpty(deptId)) {
-
-            Set<String> deptIds = convertSet(deptApi.getChildDeptList(deptId).getCheckedData(), DeptRespDTO::getId);
-            // 包括自身
-            deptIds.add(deptId);
+        Set<String> deptIds = dto.getDeptIds();
+        if (CollectionUtil.isNotEmpty(deptIds)) {
 
             CommonResult<List<AdminUserRespDTO>> commonResult = userApi.getUserListByDeptIds(deptIds);
             userIds = commonResult.getCheckedData().stream().map(AdminUserRespDTO::getId).filter(Objects::nonNull).collect(Collectors.toList());