瀏覽代碼

外部通讯录,bug修正

yzc 2 年之前
父節點
當前提交
8e70a5a9f7

+ 2 - 2
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionPlan.java

@@ -35,13 +35,13 @@ public class ProductionPlan extends BasePo {
     /**
     /**
      * 计划开始时间
      * 计划开始时间
      */
      */
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     private Date startDate;
     private Date startDate;
 
 
     /**
     /**
      * 计划结束时间
      * 计划结束时间
      */
      */
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     private Date stopDate;
     private Date stopDate;
 
 
     /**
     /**

+ 5 - 5
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionPlanServiceImpl.java

@@ -54,11 +54,11 @@ public class ProductionPlanServiceImpl extends ServiceImpl<ProductionPlanMapper,
     public Page<ProductionPlanVo> getPage(ProductionPlanSelectDto dto) {
     public Page<ProductionPlanVo> getPage(ProductionPlanSelectDto dto) {
         IWrapper<ProductionPlan> wrapper = getWrapper();
         IWrapper<ProductionPlan> wrapper = getWrapper();
         wrapper.orderByDesc("pp", ProductionPlan::getId);
         wrapper.orderByDesc("pp", ProductionPlan::getId);
-        wrapper.like(ProductionPlan::getStartDate, dto.getKeyword());
-        wrapper.or();
-        wrapper.like(ProductionPlan::getStopDate, dto.getKeyword());
-        wrapper.or();
-        wrapper.like(ProductionPlan::getQuantity, dto.getKeyword());
+        if(ObjectUtil.isNotEmpty(dto.getKeyword())) {
+            wrapper.and(q->q.like(ProductionPlan::getStartDate, dto.getKeyword())
+                    .or().like(ProductionPlan::getStopDate, dto.getKeyword())
+                    .or().like(ProductionPlan::getQuantity, dto.getKeyword()));
+        }
         Page<ProductionPlanVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         Page<ProductionPlanVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<ProductionPlanVo> records = page.getRecords();
         List<ProductionPlanVo> records = page.getRecords();
 
 

+ 5 - 5
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskServiceImpl.java

@@ -50,11 +50,11 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
     public Page<ProductionTaskVo> getPage(ProductionTaskSelectDto dto) {
     public Page<ProductionTaskVo> getPage(ProductionTaskSelectDto dto) {
         IWrapper<ProductionTask> wrapper = getWrapper();
         IWrapper<ProductionTask> wrapper = getWrapper();
         wrapper.orderByDesc("pt", ProductionTask::getId);
         wrapper.orderByDesc("pt", ProductionTask::getId);
-        wrapper.like(ProductionTaskVo::getCode,dto.getKeyword());
-        wrapper.or();
-        wrapper.like(ProductionTaskVo::getQuantity,dto.getKeyword());
-        wrapper.or();
-        wrapper.like(ProductionTaskVo::getDueDate,dto.getKeyword());
+        if(ObjectUtil.isNotEmpty(dto.getKeyword())) {
+            wrapper.and(q->q.like("pt",ProductionTaskVo::getCode, dto.getKeyword())
+                    .or().like("pt",ProductionTaskVo::getQuantity, dto.getKeyword())
+                    .or().like("pt",ProductionTaskVo::getDueDate, dto.getKeyword()));
+        }
         Page<ProductionTaskVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         Page<ProductionTaskVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<ProductionTaskVo> records = page.getRecords();
         List<ProductionTaskVo> records = page.getRecords();
         //赋值产品名称
         //赋值产品名称

+ 8 - 0
hx-oa/pom.xml

@@ -21,6 +21,14 @@
             <groupId>com.fjhx</groupId>
             <groupId>com.fjhx</groupId>
             <artifactId>hx-common</artifactId>
             <artifactId>hx-common</artifactId>
         </dependency>
         </dependency>
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>hx-customer</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>hx-supply</artifactId>
+        </dependency>
     </dependencies>
     </dependencies>
 
 
 
 

+ 81 - 0
hx-oa/src/main/java/com/fjhx/oa/controller/contacts/ContactsController.java

@@ -0,0 +1,81 @@
+package com.fjhx.oa.controller.contacts;
+
+import com.fjhx.oa.entity.contacts.po.Contacts;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.contacts.vo.ContactsVo;
+import com.fjhx.oa.entity.contacts.dto.ContactsSelectDto;
+import com.fjhx.oa.entity.contacts.dto.ContactsDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.oa.service.contacts.ContactsService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 外部通讯录联系人 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@RestController
+@RequestMapping("/contacts")
+public class ContactsController {
+
+    @Autowired
+    private ContactsService contactsService;
+
+    /**
+     * 外部通讯录联系人分页
+     */
+    @PostMapping("/page")
+    public Page<ContactsVo> page(@RequestBody ContactsSelectDto dto) {
+        return contactsService.getPage(dto);
+    }
+
+    /**
+     * 外部通讯录联系人明细
+     */
+    @PostMapping("/detail")
+    public ContactsVo detail(@RequestBody BaseSelectDto dto) {
+        return contactsService.detail(dto.getId());
+    }
+
+    /**
+     * 外部通讯录联系人新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ContactsDto contactsDto) {
+        contactsService.add(contactsDto);
+    }
+
+    /**
+     * 外部通讯录联系人编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ContactsDto contactsDto) {
+        contactsService.edit(contactsDto);
+    }
+
+    /**
+     * 外部通讯录联系人删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        contactsService.delete(dto.getId());
+    }
+
+    /**
+     * 企业列表
+     *
+     * @return
+     */
+    @PostMapping("/list")
+    public List<Contacts> list() {
+        return contactsService.getList();
+    }
+
+}

+ 22 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/contacts/dto/ContactsDto.java

@@ -0,0 +1,22 @@
+package com.fjhx.oa.entity.contacts.dto;
+
+import com.fjhx.oa.entity.contacts.po.Contacts;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 外部通讯录联系人新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class ContactsDto extends Contacts {
+
+    /**联系人列表*/
+    List<Contacts> contactsList;
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/contacts/dto/ContactsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.contacts.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 外部通讯录联系人列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class ContactsSelectDto extends BaseSelectDto {
+
+}

+ 47 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/contacts/po/Contacts.java

@@ -0,0 +1,47 @@
+package com.fjhx.oa.entity.contacts.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 外部通讯录联系人
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+@TableName("contacts")
+public class Contacts extends BasePo {
+
+    /**
+     * 企业id
+     */
+    private Long enterpriseId;
+
+    /**
+     * 企业类型 1客户 2供应商 3自定义
+     */
+    private Integer enterpriseType;
+
+    /**
+     * 企业名称
+     */
+    private String enterpriseName;
+
+    /**
+     * 联系人名称
+     */
+    private String contactName;
+
+    /**
+     * 手机号
+     */
+    private String phoneNumber;
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/contacts/vo/ContactsVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.contacts.vo;
+
+import com.fjhx.oa.entity.contacts.po.Contacts;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 外部通讯录联系人列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class ContactsVo extends Contacts {
+
+}

+ 26 - 0
hx-oa/src/main/java/com/fjhx/oa/mapper/contacts/ContactsMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.oa.mapper.contacts;
+
+import com.fjhx.oa.entity.contacts.po.Contacts;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.contacts.vo.ContactsVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 外部通讯录联系人 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+public interface ContactsMapper extends BaseMapper<Contacts> {
+
+    /**
+     * 外部通讯录联系人分页
+     */
+    Page<ContactsVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Contacts> wrapper);
+
+}

+ 49 - 0
hx-oa/src/main/java/com/fjhx/oa/service/contacts/ContactsService.java

@@ -0,0 +1,49 @@
+package com.fjhx.oa.service.contacts;
+
+import com.fjhx.oa.entity.contacts.po.Contacts;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.contacts.vo.ContactsVo;
+import com.fjhx.oa.entity.contacts.dto.ContactsSelectDto;
+import com.fjhx.oa.entity.contacts.dto.ContactsDto;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 外部通讯录联系人 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+public interface ContactsService extends BaseService<Contacts> {
+
+    /**
+     * 外部通讯录联系人分页
+     */
+    Page<ContactsVo> getPage(ContactsSelectDto dto);
+
+    /**
+     * 外部通讯录联系人明细
+     */
+    ContactsVo detail(Long id);
+
+    /**
+     * 外部通讯录联系人新增
+     */
+    void add(ContactsDto contactsDto);
+
+    /**
+     * 外部通讯录联系人编辑
+     */
+    void edit(ContactsDto contactsDto);
+
+    /**
+     * 外部通讯录联系人删除
+     */
+    void delete(Long id);
+
+    List<Contacts> getList();
+}

+ 143 - 0
hx-oa/src/main/java/com/fjhx/oa/service/contacts/impl/ContactsServiceImpl.java

@@ -0,0 +1,143 @@
+package com.fjhx.oa.service.contacts.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.customer.entity.customer.po.Customer;
+import com.fjhx.customer.service.customer.CustomerService;
+import com.fjhx.oa.entity.contacts.po.Contacts;
+import com.fjhx.oa.mapper.contacts.ContactsMapper;
+import com.fjhx.oa.service.contacts.ContactsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.supply.entity.supplier.po.SupplierInfo;
+import com.fjhx.supply.service.supplier.SupplierInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.contacts.vo.ContactsVo;
+import com.fjhx.oa.entity.contacts.dto.ContactsSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.oa.entity.contacts.dto.ContactsDto;
+import cn.hutool.core.bean.BeanUtil;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 外部通讯录联系人 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@DS(SourceConstant.OA)
+@Service
+public class ContactsServiceImpl extends ServiceImpl<ContactsMapper, Contacts> implements ContactsService {
+    @Autowired
+    CustomerService customerService;
+    @Autowired
+    SupplierInfoService supplierInfoService;
+
+    @Override
+    public Page<ContactsVo> getPage(ContactsSelectDto dto) {
+        IWrapper<Contacts> wrapper = getWrapper();
+        wrapper.orderByDesc("c", Contacts::getId);
+        if(ObjectUtil.isNotEmpty(dto.getKeyword())) {
+            wrapper.and(q->q.like(Contacts::getContactName, dto.getKeyword())
+                    .or()
+                    .like(Contacts::getPhoneNumber, dto.getKeyword())
+                    .or()
+                    .like(Contacts::getEnterpriseName, dto.getKeyword()));
+        }
+        Page<ContactsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<ContactsVo> records = page.getRecords();
+        //给客户赋值企业名称
+        List<ContactsVo> customers = records.stream().filter(item -> item.getEnterpriseType() == 1).collect(Collectors.toList());
+        DynamicDataSourceContextHolder.push(SourceConstant.CUSTOMER);
+        customerService.attributeAssign(customers, ContactsVo::getEnterpriseId, (item, customer) -> {
+            item.setEnterpriseName(customer.getName());
+        });
+        DynamicDataSourceContextHolder.poll();
+        //给供应商赋值企业名称
+        List<ContactsVo> supplierInfos = records.stream().filter(item -> item.getEnterpriseType() == 2).collect(Collectors.toList());
+        DynamicDataSourceContextHolder.push(SourceConstant.SUPPLY);
+        supplierInfoService.attributeAssign(supplierInfos, ContactsVo::getEnterpriseId, (item, supplier) -> {
+            item.setEnterpriseName(supplier.getName());
+        });
+        DynamicDataSourceContextHolder.poll();
+        return page;
+    }
+
+    @Override
+    public ContactsVo detail(Long id) {
+        Contacts Contacts = this.getById(id);
+        ContactsVo result = BeanUtil.toBean(Contacts, ContactsVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(ContactsDto contactsDto) {
+        //企业id 用在创建自定义企业的时候
+        Long enterpriseId = IdWorker.getId();
+
+        List<Contacts> contactsList = contactsDto.getContactsList();
+        for (Contacts contacts: contactsList){
+            if(ObjectUtil.isNotEmpty(contactsDto.getEnterpriseId())) {
+                contacts.setEnterpriseId(contactsDto.getEnterpriseId());
+                contacts.setEnterpriseType(contactsDto.getEnterpriseType());
+            }else{
+                contacts.setEnterpriseId(enterpriseId);
+                contacts.setEnterpriseName(contactsDto.getEnterpriseName());
+                contacts.setEnterpriseType(3);
+            }
+        }
+        saveBatch(contactsList);
+    }
+
+    @Override
+    public void edit(ContactsDto contactsDto) {
+        this.updateById(contactsDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+    @Override
+    public List<Contacts> getList() {
+        //获取自定义企业列表
+        IWrapper<Contacts> wrapper = getWrapper();
+        wrapper.select("DISTINCT enterprise_id,enterprise_type,enterprise_name");
+        wrapper.eq(Contacts::getEnterpriseType,3);
+        List<Contacts> contactsList = list(wrapper);
+        //获取客户列表
+        DynamicDataSourceContextHolder.push(SourceConstant.CUSTOMER);
+        List<Customer> customerList = customerService.list();
+        for (Customer customer:customerList){
+            Contacts contacts = new Contacts();
+            contacts.setEnterpriseId(customer.getId());
+            contacts.setEnterpriseName(customer.getName());
+            contacts.setEnterpriseType(1);
+            contactsList.add(contacts);
+        }
+        DynamicDataSourceContextHolder.poll();
+        //获取供应商列表
+        DynamicDataSourceContextHolder.push(SourceConstant.SUPPLY);
+        List<SupplierInfo> supplierInfoList = supplierInfoService.list();
+        for (SupplierInfo supplierInfo:supplierInfoList){
+            Contacts contacts = new Contacts();
+            contacts.setEnterpriseId(supplierInfo.getId());
+            contacts.setEnterpriseName(supplierInfo.getName());
+            contacts.setEnterpriseType(2);
+            contactsList.add(contacts);
+        }
+        DynamicDataSourceContextHolder.poll();
+        return contactsList;
+    }
+
+}

+ 3 - 1
hx-oa/src/main/java/com/fjhx/oa/service/internal/impl/InternalAddressBookServiceImpl.java

@@ -77,7 +77,9 @@ public class InternalAddressBookServiceImpl extends ServiceImpl<InternalAddressB
             internalAddressBook.setUserId(internalAddressBookDto.getUserId());
             internalAddressBook.setUserId(internalAddressBookDto.getUserId());
         }
         }
         List<Long> internalAddressBookIds = internalAddressBookList.stream().filter(item-> ObjectUtil.isNotEmpty(item.getId())).map(InternalAddressBook::getId).collect(Collectors.toList());
         List<Long> internalAddressBookIds = internalAddressBookList.stream().filter(item-> ObjectUtil.isNotEmpty(item.getId())).map(InternalAddressBook::getId).collect(Collectors.toList());
-        remove(q->q.notIn(InternalAddressBook::getId,internalAddressBookIds).eq(InternalAddressBook::getUserId,internalAddressBookDto.getUserId()));
+        if(ObjectUtil.isNotEmpty(internalAddressBookIds)) {
+            remove(q -> q.notIn(InternalAddressBook::getId, internalAddressBookIds).eq(InternalAddressBook::getUserId, internalAddressBookDto.getUserId()));
+        }
         saveOrUpdateBatch(internalAddressBookList);
         saveOrUpdateBatch(internalAddressBookList);
     }
     }
 
 

+ 20 - 0
hx-oa/src/main/resources/mapper/contacts/ContactsMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.oa.mapper.contacts.ContactsMapper">
+    <select id="getPage" resultType="com.fjhx.oa.entity.contacts.vo.ContactsVo">
+        select
+            c.id,
+            c.enterprise_id,
+            c.enterprise_type,
+            c.enterprise_name,
+            c.contact_name,
+            c.phone_number,
+            c.create_user,
+            c.create_time,
+            c.update_user,
+            c.update_time
+        from contacts c
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>