licailing 5 rokov pred
rodič
commit
a787c71fb8

+ 1 - 0
src/main/java/com/izouma/jiashanxia/domain/Company.java

@@ -25,4 +25,5 @@ public class Company extends BaseEntity {
     private String name;
 
     private BigDecimal amount;
+
 }

+ 29 - 0
src/main/java/com/izouma/jiashanxia/dto/CompanyDTO.java

@@ -0,0 +1,29 @@
+package com.izouma.jiashanxia.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@Data
+@ApiModel(value = "企业表")
+public class CompanyDTO {
+    private Long id;
+
+    private Long userId;
+
+    @ApiModelProperty(value = "企业名称")
+    private String name;
+
+    private BigDecimal amount;
+
+    private List<Long> employee;
+}

+ 13 - 0
src/main/java/com/izouma/jiashanxia/service/CompanyService.java

@@ -64,4 +64,17 @@ public class CompanyService {
         }
         return userRepo.findAllByCompanyId(company.getId());
     }
+
+    /*
+    批量增加员工
+     */
+    public void batchEmployee(List<Long> employee, Long companyId) {
+        List<User> employees = userRepo.findAllById(employee);
+        employees.forEach(yee -> {
+            if (yee.getCompanyId() == null || !yee.getCompanyId().equals(companyId)) {
+                yee.setCompanyId(companyId);
+                userRepo.save(yee);
+            }
+        });
+    }
 }

+ 31 - 2
src/main/java/com/izouma/jiashanxia/web/CompanyController.java

@@ -1,7 +1,10 @@
 package com.izouma.jiashanxia.web;
 
+import cn.hutool.core.collection.CollUtil;
 import com.izouma.jiashanxia.domain.Company;
 import com.izouma.jiashanxia.domain.User;
+import com.izouma.jiashanxia.dto.CompanyDTO;
+import com.izouma.jiashanxia.repo.UserRepo;
 import com.izouma.jiashanxia.service.CompanyService;
 import com.izouma.jiashanxia.dto.PageQuery;
 import com.izouma.jiashanxia.exception.BusinessException;
@@ -17,6 +20,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.util.List;
 
 @RestController
@@ -25,16 +29,41 @@ import java.util.List;
 public class CompanyController extends BaseController {
     private CompanyService companyService;
     private CompanyRepo    companyRepo;
+    private UserRepo       userRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
-    public Company save(@RequestBody Company record) {
+    public Company save(@RequestBody CompanyDTO record) {
         if (record.getId() != null) {
             Company orig = companyRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
             ObjUtils.merge(orig, record);
+            List<Long> employee = record.getEmployee();
+            if (CollUtil.isNotEmpty(employee)) {
+                List<User> employees = userRepo.findAllById(employee);
+                employees.forEach(yee -> {
+                    if (yee.getCompanyId() == null || !yee.getCompanyId().equals(record.getId())) {
+                        yee.setCompanyId(record.getId());
+                        userRepo.save(yee);
+                    }
+                });
+            }
             return companyRepo.save(orig);
         }
-        return companyRepo.save(record);
+        Company save = companyRepo.save(Company.builder()
+                .amount(BigDecimal.ZERO)
+                .name(record.getName())
+                .userId(record.getUserId())
+                .build());
+        if (CollUtil.isNotEmpty(record.getEmployee())) {
+            List<User> employees = userRepo.findAllById(record.getEmployee());
+            employees.forEach(yee -> {
+                if (yee.getCompanyId() == null || !yee.getCompanyId().equals(record.getId())) {
+                    yee.setCompanyId(record.getId());
+                    userRepo.save(yee);
+                }
+            });
+        }
+        return save;
     }
 
     @PreAuthorize("hasAnyRole('ADMIN','CREATOR')")

+ 45 - 4
src/main/vue/src/views/CompanyEdit.vue

@@ -12,12 +12,32 @@
             <el-form-item prop="name" label="团队名称">
                 <el-input v-model="formData.name"></el-input>
             </el-form-item>
+            <el-form-item prop="userId" label="管理人员">
+                <div class="subform">
+                    <el-select v-model="formData.userId" style="width: 360px" filterable clearable>
+                        <el-option v-for="item in users" :key="item.id" :value="item.id" :label="item.nickname">
+                            <span style="float: left">{{ item.nickname }}</span>
+                            <span style="float: right; color: #8492a6; font-size: 13px">{{ item.phone }}</span>
+                        </el-option>
+                    </el-select>
+                </div>
+            </el-form-item>
+            <el-form-item prop="emps" label="员工">
+                <div class="subform">
+                    <el-select v-model="emps" style="width: 360px" filterable clearable multiple>
+                        <el-option v-for="item in users" :key="item.id" :value="item.id" :label="item.nickname">
+                            <span style="float: left">{{ item.nickname }}</span>
+                            <span style="float: right; color: #8492a6; font-size: 13px">{{ item.phone }}</span>
+                        </el-option>
+                    </el-select>
+                </div>
+            </el-form-item>
             <!--<el-form-item prop="amount" label="团队余额">
                 <el-input-number type="number" v-model="formData.amount"></el-input-number>
             </el-form-item>-->
             <el-form-item>
                 <el-button @click="onSave" :loading="saving" type="primary">保存</el-button>
-                <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">删除 </el-button>
+                <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">删除</el-button>
                 <el-button @click="$router.go(-1)">取消</el-button>
             </el-form-item>
         </el-form>
@@ -38,12 +58,25 @@ export default {
                     this.$message.error(e.error);
                 });
         }
+        this.$http
+            .post('user/all', {}, { body: 'json' })
+            .then(res => {
+                this.users = res.content;
+            })
+            .catch(e => {
+                console.log(e);
+                this.$message.error(e.error);
+            });
     },
     data() {
         return {
             saving: false,
-            formData: {},
-            rules: {}
+            formData: {
+                userId: 0
+            },
+            rules: {},
+            users: [],
+            emps: []
         };
     },
     methods: {
@@ -92,4 +125,12 @@ export default {
     }
 };
 </script>
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+.subform {
+    padding: 16px 16px 16px 16px;
+    background: #f2f3f5;
+    border-radius: 8px;
+    border: 1px solid #eee;
+    margin-bottom: 10px;
+}
+</style>