Преглед на файлове

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

seyason преди 2 години
родител
ревизия
1875f690b8

+ 35 - 0
fhKeeper/formulahousekeeper/octopus/src/views/customer/list.vue

@@ -72,6 +72,7 @@
                     <el-button size="mini"  @click="editClick('D', scope.row)">{{scope.row.setMeal ? '设为未签约' : '设为已签约'}}</el-button>
                     <el-button size="mini"  @click="editClick('G', scope.row)">其他设置</el-button>
                     <el-button size="mini"  @click="editClick('H', scope.row)">报表配置</el-button>
+                    <el-button size="mini"  @click="editClick('I', scope.row)"  v-if="scope.row.canDelete">删除企业</el-button>
                     <el-button size="mini"  @click="editClick('E', scope.row)" v-loading="dingdingSync" v-if="scope.row.dingdingCorpid">同步钉钉人员</el-button>
                 </template>
             </el-table-column>
@@ -418,6 +419,40 @@
                     this.getReoprtFormList(obj)
                     this.getRoleList(obj)
                 }
+                else if(i == 'I'){
+                    this.$confirm('此操作将永久删除该企业及相关数据, 是否继续?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                    }).then(() => {
+                    this.http.post('/company/deleteCompany', { companyId:this.dialogData.id},
+                res => {
+                    if (res.code == "ok") {
+                        this.$message({
+                            message: "删除成功",
+                            type: "success"
+                        });
+                        this.getList();
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: "error"
+                        });
+                    }
+                },
+                error => {
+                    this.$message({
+                        message: error,
+                        type: "error"
+                    });
+                });
+                    }).catch(() => {
+                    this.$message({
+                        type: 'info',
+                        message: '已取消删除'
+                    });          
+        });
+                }
                 
             },
 

+ 11 - 2
fhKeeper/formulahousekeeper/octopus/src/views/signing/list.vue

@@ -12,6 +12,15 @@
                     </el-input>
                     </div>
                 </el-form-item>
+                <el-form-item >
+                        <el-radio-group v-model="isMeal" size="small" @change="selIsmeal()">
+                            <el-radio-button :label="0">全部</el-radio-button>
+                            <el-radio-button :label="1">已签约</el-radio-button>
+                            <el-radio-button :label="2">即将到期</el-radio-button>
+                        </el-radio-group>
+                        <el-checkbox v-model="onlyContract" v-if="isMeal == 2" style="margin-left: 20px" @change="selIsmeal()">仅显示已签约</el-checkbox>
+                        <!-- <el-checkbox style="margin-left:20px" size="small" v-model="checked" @change="selIsmeal()">即将到期</el-checkbox> -->
+                </el-form-item>
             </el-form>
         </el-col>
 
@@ -87,7 +96,7 @@
                     <el-input size="small" controls-position="right" v-model="contractUnitPrice" style="width: 100px"></el-input> 元
                 </el-form-item>
                 <el-form-item label="签约折扣:" label-width="150px">
-                    <el-input-number size="small" controls-position="right" max="1" v-model="contractDiscount" :step="0.1" style="width: 100px"></el-input-number> 折
+                    <el-input-number size="small" controls-position="right" :max="1" :min="0" v-model="contractDiscount" :step="0.1" style="width: 100px"></el-input-number> 折
                 </el-form-item>
                 <el-form-item label="开单金额:" label-width="150px">
                      <el-input size="small" controls-position="right" v-model="billingAmount" style="width: 100px"></el-input> 元
@@ -205,7 +214,7 @@ import axios from 'axios'
         data() {
             return {
                 dingdingSync:false,
-                isMeal:1, //只看已签约
+                isMeal:0,
                 editDialogA: false,
                 editDialogB: false,
                 editDialogC: false,

+ 23 - 4
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/controller/CompanyController.java

@@ -5,12 +5,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.management.platform.entity.*;
-import com.management.platform.mapper.CompanyDingdingMapper;
-import com.management.platform.mapper.CompanyMapper;
-import com.management.platform.mapper.UserMapper;
-import com.management.platform.mapper.WxCorpInfoMapper;
+import com.management.platform.mapper.*;
 import com.management.platform.service.CompanyService;
 import com.management.platform.util.HttpRespMsg;
+import com.sun.org.apache.regexp.internal.RE;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpHeaders;
@@ -25,6 +23,7 @@ import org.springframework.web.client.RestTemplate;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.time.Duration;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
@@ -57,6 +56,8 @@ public class CompanyController {
     CompanyDingdingMapper companyDingdingMapper;
     @Resource
     UserMapper userMapper;
+    @Resource
+    ReportMapper reportMapper;
 
     public static LocalDateTime lastSyncDDTime;
 
@@ -86,6 +87,18 @@ public class CompanyController {
 
         IPage<Company> result = companyMapper.selectPage(new Page<>(pageIndex, pageSize), queryWrapper);
         List<Company> records = result.getRecords();
+        records.forEach(re->{
+            LocalDateTime now=LocalDateTime.now();
+            re.setCanDelete(0);
+            if(re.getCreateDate()!=null){
+                LocalDateTime createDate = re.getCreateDate().atTime(LocalTime.now());
+                Duration between = Duration.between(createDate, now);
+                Integer count = reportMapper.selectCount(new QueryWrapper<Report>().eq("company_id", re.getId()).ge("create_date", now.minusYears(1)));
+                if(between.toDays()>90&&count.equals(0)){
+                    re.setCanDelete(1);
+                }
+            }
+        });
         List<Integer> collect = records.stream().map(Company::getId).collect(Collectors.toList());
         if (collect.size() > 0) {
             List<WxCorpInfo> wxComps = wxCorpInfoMapper.selectList(new QueryWrapper<WxCorpInfo>().in("company_id", collect));
@@ -198,5 +211,11 @@ public class CompanyController {
     public HttpRespMsg dataMigration(HttpServletRequest request, Integer oldCompanyId, Integer targetCompanyId,String oldUserName,String targetUserName){
         return companyService.dataMigration(request,oldCompanyId,targetCompanyId,oldUserName,targetUserName);
     }
+
+
+    @RequestMapping("/deleteCompany")
+    public HttpRespMsg deleteCompany(Integer companyId){
+        return companyService.deleteCompany(companyId);
+    }
 }
 

+ 18 - 2
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/entity/Company.java

@@ -2,6 +2,7 @@ package com.management.platform.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDate;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
@@ -19,7 +20,7 @@ import org.springframework.format.annotation.DateTimeFormat;
  * </p>
  *
  * @author Seyason
- * @since 2022-07-15
+ * @since 2023-02-20
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -55,7 +56,7 @@ public class Company extends Model<Company> {
     private LocalDateTime expirationDate;
 
     /**
-     * 选择的套餐(单位:/年)
+     * 是否签约
      */
     @TableField("set_meal")
     private Integer setMeal;
@@ -133,9 +134,24 @@ public class Company extends Model<Company> {
     @TableField("package_provider")
     private Integer packageProvider;
 
+    /**
+     * 是否是国际化版本
+     */
+    @TableField("is_international")
+    private Integer isInternational;
+
+    /**
+     * 创建日期
+     */
+    @TableField("create_date")
+    private LocalDate createDate;
 
     @TableField(exist = false)
     private Integer activeUserCount;
+
+    @TableField(exist = false)
+    private Integer canDelete;
+
     @Override
     protected Serializable pkVal() {
         return this.id;

+ 1 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/mapper/CompanyMapper.java

@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface CompanyMapper extends BaseMapper<Company> {
 
+    void deleteCompany(Integer companyId);
 }

+ 2 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/CompanyService.java

@@ -28,4 +28,6 @@ public interface CompanyService extends IService<Company> {
     HttpRespMsg dataMigration(HttpServletRequest request,Integer oldCompanyId, Integer targetCompanyId,String oldUserName,String targetUserName);
 
     HttpRespMsg setTimeTypeSetting(TimeType timeType);
+
+    HttpRespMsg deleteCompany(Integer companyId);
 }

+ 12 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/impl/CompanyServiceImpl.java

@@ -407,4 +407,16 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
         saveLog(str);
         return new HttpRespMsg();
     }
+
+    @Override
+    public HttpRespMsg deleteCompany(Integer companyId) {
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        try {
+            companyMapper.deleteCompany(companyId);
+        }catch (Exception e){
+            e.printStackTrace();
+            httpRespMsg.setError("验证失败");
+        }
+        return httpRespMsg;
+    }
 }

+ 13 - 1
fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/CompanyMapper.xml

@@ -20,11 +20,23 @@
         <result column="package_simple" property="packageSimple" />
         <result column="package_finance" property="packageFinance" />
         <result column="package_provider" property="packageProvider" />
+        <result column="is_international" property="isInternational" />
+        <result column="create_date" property="createDate" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, company_name, staff_count_max, expiration_date, set_meal, package_worktime, package_project, package_contract, package_oa, package_etimecard, package_expense, package_customer, package_engineering, package_simple, package_finance, package_provider
+        id, company_name, staff_count_max, expiration_date, set_meal, package_worktime, package_project, package_contract, package_oa, package_etimecard, package_expense, package_customer, package_engineering, package_simple, package_finance, package_provider, is_international, create_date
     </sql>
 
+    <delete id="deleteCompany" parameterType="com.management.platform.entity.Company">
+        DELETE t1,t2,t3,t4
+        FROM
+        company t1
+        LEFT JOIN alert_time t2 ON t2.company_id = t1.id
+        LEFT JOIN audit_workflow_setting t3 ON t3.company_id = t1.id
+        LEFT JOIN audit_workflow_time_setting t4 ON t4.company_id = t1.id
+        WHERE
+        t1.id = #{companyId}
+    </delete>
 </mapper>

BIN
fhKeeper/formulahousekeeper/ops-platform/src/main/resources/模板.docx