24282 2 years ago
parent
commit
27caed8fb2

+ 4 - 1
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/service/controller/ServiceContractController.java

@@ -46,7 +46,7 @@ public class ServiceContractController {
     }
 
     /**
-     * 标记
+     * 编辑
      */
     @PostMapping("/edit")
     public R edit(@RequestBody ServiceContractVo serviceContractVo) {
@@ -54,6 +54,9 @@ public class ServiceContractController {
         return R.success();
     }
 
+    /**
+     * 明细
+     */
     @PostMapping("/detail")
     public R detail(@RequestBody ServiceContract serviceContract) {
         ServiceContractVo result = serviceContractService.getDetail(serviceContract.getId());

+ 65 - 0
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/service/controller/ServiceContractRecordController.java

@@ -0,0 +1,65 @@
+package com.fjhx.service.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.service.entity.dto.GetServiceContractRecordPageDto;
+import com.fjhx.service.entity.vo.ServiceContractRecordVo;
+import com.fjhx.service.service.ServiceContractRecordService;
+import org.springblade.core.tool.api.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 服务记录 前端控制器
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-02-17
+ */
+@RestController
+@RequestMapping("/serviceContractRecord")
+public class ServiceContractRecordController {
+
+    @Autowired
+    private ServiceContractRecordService serviceContractRecordService;
+
+    /**
+     * 分页
+     */
+    @PostMapping("/page")
+    public R getPage(@RequestBody GetServiceContractRecordPageDto dto) {
+        Page<ServiceContractRecordVo> page = serviceContractRecordService.getPage(dto);
+        return R.data(page);
+    }
+
+    /**
+     * 添加
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody ServiceContractRecordVo vo) {
+        serviceContractRecordService.add(vo);
+        return R.success();
+    }
+
+    /**
+     * 编辑
+     */
+    @PostMapping("/edit")
+    public R edit(@RequestBody ServiceContractRecordVo vo) {
+        serviceContractRecordService.edit(vo);
+        return R.success();
+    }
+
+    /**
+     * 删除
+     */
+    @PostMapping("/delete")
+    public R delete(@RequestBody ServiceContractRecordVo vo) {
+        serviceContractRecordService.delete(vo);
+        return R.success();
+    }
+
+}

+ 11 - 0
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/service/entity/dto/GetServiceContractRecordPageDto.java

@@ -0,0 +1,11 @@
+package com.fjhx.service.entity.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.springblade.core.mp.base.BaseSelectDto;
+
+@Getter
+@Setter
+public class GetServiceContractRecordPageDto extends BaseSelectDto {
+
+}

+ 47 - 0
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/service/entity/po/ServiceContractRecord.java

@@ -0,0 +1,47 @@
+package com.fjhx.service.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.time.LocalDateTime;
+import org.springblade.core.mp.base.BasicsEntity;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 服务记录
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-02-17
+ */
+@Getter
+@Setter
+@TableName("t_erp_service_contract_record")
+public class ServiceContractRecord extends BasicsEntity {
+
+    /**
+     * 服务合同id
+     */
+    private Long serviceContractId;
+
+    /**
+     * 服务合同编号
+     */
+    private String serviceContractCode;
+
+    /**
+     * 服务时间
+     */
+    private LocalDateTime serviceTime;
+
+    /**
+     * 服务人员
+     */
+    private String serviceUser;
+
+    /**
+     * 服务记录
+     */
+    private String remark;
+
+}

+ 24 - 0
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/service/entity/vo/ServiceContractRecordVo.java

@@ -0,0 +1,24 @@
+package com.fjhx.service.entity.vo;
+
+import com.fjhx.service.entity.po.ServiceContractRecord;
+import lombok.Getter;
+import lombok.Setter;
+import org.springblade.system.attachment.entity.Attachment;
+
+import java.util.List;
+
+@Getter
+@Setter
+public class ServiceContractRecordVo extends ServiceContractRecord {
+
+    /**
+     * 服务人员
+     */
+    private String serviceUserName;
+
+    /**
+     * 附件
+     */
+    private List<Attachment> attachmentList;
+
+}

+ 16 - 0
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/service/mapper/ServiceContractRecordMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.service.mapper;
+
+import com.fjhx.service.entity.po.ServiceContractRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 服务记录 Mapper 接口
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-02-17
+ */
+public interface ServiceContractRecordMapper extends BaseMapper<ServiceContractRecord> {
+
+}

+ 5 - 0
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/service/mapper/ServiceContractRecordMapper.xml

@@ -0,0 +1,5 @@
+<?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.service.mapper.ServiceContractRecordMapper">
+
+</mapper>

+ 27 - 0
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/service/service/ServiceContractRecordService.java

@@ -0,0 +1,27 @@
+package com.fjhx.service.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.service.entity.dto.GetServiceContractRecordPageDto;
+import com.fjhx.service.entity.po.ServiceContractRecord;
+import com.fjhx.service.entity.vo.ServiceContractRecordVo;
+import org.springblade.core.mp.base.BaseService;
+
+/**
+ * <p>
+ * 服务记录 服务类
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-02-17
+ */
+public interface ServiceContractRecordService extends BaseService<ServiceContractRecord> {
+
+    Page<ServiceContractRecordVo> getPage(GetServiceContractRecordPageDto dto);
+
+    void add(ServiceContractRecordVo vo);
+
+    void edit(ServiceContractRecordVo vo);
+
+    void delete(ServiceContractRecordVo vo);
+
+}

+ 122 - 0
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/service/service/impl/ServiceContractRecordServiceImpl.java

@@ -0,0 +1,122 @@
+package com.fjhx.service.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.common.attachment.IAttachmentApi;
+import com.fjhx.service.entity.dto.GetServiceContractRecordPageDto;
+import com.fjhx.service.entity.po.ServiceContractRecord;
+import com.fjhx.service.entity.vo.ServiceContractRecordVo;
+import com.fjhx.service.mapper.ServiceContractRecordMapper;
+import com.fjhx.service.service.ServiceContractRecordService;
+import org.springblade.common.constant.AttachmentConstant;
+import org.springblade.core.mp.base.BasicsServiceImpl;
+import org.springblade.core.mp.utils.PageUtil;
+import org.springblade.system.attachment.entity.Attachment;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+/**
+ * <p>
+ * 服务记录 服务实现类
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-02-17
+ */
+@Service
+public class ServiceContractRecordServiceImpl extends BasicsServiceImpl<ServiceContractRecordMapper, ServiceContractRecord> implements ServiceContractRecordService {
+
+    @Autowired
+    private IAttachmentApi iAttachmentApi;
+
+    @Autowired
+    private IUserClient iUserClient;
+
+    @Override
+    public Page<ServiceContractRecordVo> getPage(GetServiceContractRecordPageDto dto) {
+
+        Wrapper<ServiceContractRecord> wrapper = Wrappers.<ServiceContractRecord>lambdaQuery()
+                .and(ObjectUtil.isNotEmpty(dto.getKeyword()), q -> q
+                        .like(ServiceContractRecord::getServiceContractCode, dto.getKeyword()));
+
+        Page<ServiceContractRecordVo> page = PageUtil.toPage(page(dto.getPage(), wrapper), ServiceContractRecordVo.class);
+        List<ServiceContractRecordVo> records = page.getRecords();
+
+        if (records.size() == 0) {
+            return page;
+        }
+
+        Set<String> userIdSet = new HashSet<>();
+        Set<String> serviceContractRecordIdList = new HashSet<>();
+
+        for (ServiceContractRecordVo record : records) {
+            String[] split = record.getServiceUser().split(",");
+            userIdSet.addAll(Arrays.asList(split));
+            serviceContractRecordIdList.add(record.getId());
+        }
+
+        Map<String, List<Attachment>> attachmentMap = iAttachmentApi.getByBusiIdsToMap(new ArrayList<>(serviceContractRecordIdList));
+        Map<String, User> userMap = iUserClient.userInfoByIdsToMap(new ArrayList<>(userIdSet));
+
+        for (ServiceContractRecordVo record : records) {
+            // 赋值附件
+            record.setAttachmentList(attachmentMap.get(record.getId()));
+
+            // 赋值服务人员
+            StringJoiner userNameJoiner = new StringJoiner(",");
+            String serviceUser = record.getServiceUser();
+            String[] split = serviceUser.split(",");
+            for (String userId : split) {
+                User user = userMap.get(userId);
+                if (user == null) {
+                    continue;
+                }
+                userNameJoiner.add(user.getRealName());
+            }
+            record.setServiceUserName(userNameJoiner.toString());
+        }
+
+        return page;
+    }
+
+    @Override
+    public void add(ServiceContractRecordVo vo) {
+        save(vo);
+        addAttachmentList(vo.getAttachmentList(), vo.getId());
+    }
+
+    @Override
+    public void edit(ServiceContractRecordVo vo) {
+        updateById(vo);
+        iAttachmentApi.deleteByBusiId(vo.getId());
+        addAttachmentList(vo.getAttachmentList(), vo.getId());
+    }
+
+    @Override
+    public void delete(ServiceContractRecordVo vo) {
+        removeById(vo.getId());
+        iAttachmentApi.deleteByBusiId(vo.getId());
+    }
+
+    /**
+     * 添加附件
+     */
+    private void addAttachmentList(List<Attachment> attachmentList, String serviceContractRecordId) {
+        if (ObjectUtil.isEmpty(attachmentList)) {
+            return;
+        }
+
+        for (Attachment attachment : attachmentList) {
+            attachment.setBusiId(serviceContractRecordId);
+            attachment.setBusiType(AttachmentConstant.BusiType.SERVICE_CONTRACT_RECORD);
+        }
+        iAttachmentApi.batchInsert(attachmentList);
+    }
+
+}

+ 1 - 1
bladex-saas-project/saas-generator/src/main/java/com/fly/generator/CodeGenerator.java

@@ -11,7 +11,7 @@ public class CodeGenerator {
 
 
     // 表名
-    private static final String tableName = "t_erp_service_contract_product";
+    private static final String tableName = "t_erp_service_contract_record";
 
     public static void main(String[] args) {
         // userDir

+ 7 - 4
bladex/blade-common/src/main/java/org/springblade/common/constant/AttachmentConstant.java

@@ -117,16 +117,19 @@ public class AttachmentConstant {
         //付款
         public static final int PAYMENT = 36;
 
-        //退款
+        // 退款
         public static final int REFUND = 37;
 
-        //财务报表
+        // 财务报表
         public static final int FINANCE_REPORT = 38;
 
-        //发票核销
+        // 发票核销
         public static final int INVOICE_WRITE_OFF = 39;
 
-        //99:普通附件
+        // 服务记录
+        public static final int SERVICE_CONTRACT_RECORD = 40;
+
+        // 99:普通附件
         public static final int OTHER = 99;
     }