添加日志接口

合同表和日志表在这里插入图片描述
在这里插入图片描述
Service

package com.service.system;

import com.dao.jpa.ServiceDao;
import com.entity.database.ContractEntity;
import com.entity.database.ContractLogsEntity;
import com.utils.DateUtils;
import com.utils.LoggerUtils;
import com.utils.Pages;
import com.utils.Result;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;

/**
 * @author chenfei
 * @version 1.0.0
 * @date 2021/11/24 9:48
 * 合同相关
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class ContractService {
   

    public final static int LENGTH = 5;
    public final static String NULL = "null";
    @Resource
    private final ServiceDao service;

    public ContractService(ServiceDao service) {
   
        this.service = service;
    }

    public Result findAllContract(ContractEntity data) {
   
        LoggerUtils.infoData("findAllContract", data);
        data.setPages(Pages.getPages(data.getPages()));
        Pages.startPage(data.getPages());
        var list = service.contractMybatisDao.findAllContract(data);

        return new Result(Pages.pageInfo(list, data.getPages()));
    }

    public String addContract(ContractEntity data) {
   
        LoggerUtils.infoData("/addContract", data);
        ContractLogsEntity contractLogsEntity = new ContractLogsEntity();
        data.setId(null);
        var c = service.companyJpaDao.findById(data.getCompanyId()).get();
        var code = "BT";
        if (c.getCode() != null) {
   
            code = c.getCode();
        }
        var param = new HashMap<String, Object>(2);
        param.put("code", code + DateUtils.getCurrent());
        var fc = service.contractMybatisDao.findCode(param);
        if (fc == null) {
   
            data.setCode(code + DateUtils.getCurrent() + "00001");
        } else {
   
            data.setCode(getOrderIdd(param.get("code").toString(), fc.get("code") + ""));
        }
        data.setState("签订中");
        data = service.contractJpaDao.save(data);
        var result = new HashMap<>();
        if (data != null) {
   
            result.put("result", "添加成功");
            //添加日志
            contractLogsEntity.setEmpId(data.getEmpId());
            contractLogsEntity.setContractId(data.getId());
            contractLogsEntity.setCategory("新建");
            contractLogsEntity.setCreateTime(new Timestamp(System.currentTimeMillis()));
            service.contractLogsJpaDao.save(contractLogsEntity);
        } else {
   
            result.put("result", "添加失败");
        }
        return new Result(result).toString();
    }

    //修改合同状态
    public String updateContractState(ContractEntity data) {
   
        ContractLogsEntity contractLogsEntity = new ContractLogsEntity();
        LoggerUtils.infoData("updateContract", data);
        var result = new HashMap<>();
        //查询修改之前的值
        HashMap<String, Object> value = service.contractMybatisDao.findValue(data);
        service.contractMybatisDao.updateContract(data);

        contractLogsEntity.setEmpId(data.getEmpId());
        contractLogsEntity.setContractId(data.getId());
        contractLogsEntity.setCategory("修改状态");
        contractLogsEntity.setCreateTime(new Timestamp(System.currentTimeMillis()));
        contractLogsEntity.setOldValue(value.get("state").toString());
        contractLogsEntity.setNewValue(data.getState());
        service.contractLogsJpaDao.save(contractLogsEntity);
        result.put("result", "修改成功");
        return new Result(result).toString();
    }


    //修改合同内容
    public String updateContract(ContractEntity data) {
   
        LoggerUtils.infoData("updateContract", data);
        var c = service.contractJpaDao.findById(data.getId()).get();
        ContractLogsEntity contractLogsEntity = new ContractLogsEntity();
        //查询修改之前的值
        var list = service.contractMybatisDao.findContract(data);
        //查询是否存在相同code的数据,校验
        var byCode = service.contractMybatisDao.findByCode(data);
        var result = new HashMap<>();
        if (byCode.size() == 0) {
   
            if (c.getState().equals("签订中")) {
   

                for (var a : list
                ) {
   

                    if (!a.getCompanyId().equals(data.getCompanyId()) && data.getCompanyId() != null) {
   
                        contractLogsEntity.setEmpId(data.getEmpId());
                        contractLogsEntity.setCategory("修改内容");
                        contractLogsEntity.setContractId(data.getId());
                        contractLogsEntity.setCreateTime(new Timestamp(System.currentTimeMillis()));
                        contractLogsEntity.setOldValue(a.getCompanyId().toString());
                        contractLogsEntity.setNewValue(data.getCompanyId().toString());
                        service.contractLogsJpaDao.save(contractLogsEntity);
                    }
                    if (!a.getTitle().equals(data.getTitle()) && data.getTitle() != null) {
   
                        contractLogsEntity.setEmpId(data.getEmpId());
                        contractLogsEntity.setCategory("修改内容");
                        contractLogsEntity.setContractId(data.getId());
                        contractLogsEntity.setCreateTime(new Timestamp(System.currentTimeMillis()));
                        contractLogsEntity.setOldValue(a.getTitle().toString());
                        contractLogsEntity.setNewValue(data.getTitle());
                        service.contractLogsJpaDao.save(contractLogsEntity);
                    }
                    if (!a.getCode().equals(data.getCode()) && data.getCode() != null) {
   
                        contractLogsEntity.setEmpId(data.getEmpId());
                        contractLogsEntity.setCategory("修改内容");
                        contractLogsEntity.setContractId(data.getId());
                        contractLogsEntity.setCreateTime(new Timestamp(System.currentTimeMillis()));
                        contractLogsEntity.setOldValue(a.getCode().toString());
                        contractLogsEntity.setNewValue(data.getCode().toString());
                        service.contractLogsJpaDao.save(contractLogsEntity);
                    }
                    if (!a.getDepId().equals(data.getDepId()) && data.getDepId() != null) {
   
                        contractLogsEntity.setEmpId(data.getEmpId());
                        contractLogsEntity.setCategory("修改内容");
                        contractLogsEntity.setContractId(data.getId());
                        contractLogsEntity.setCreateTime(new Timestamp(System.currentTimeMillis()));
                        contractLogsEntity.setOldValue(a.getDepId().toString());
                        contractLogsEntity.setNewValue(data.getDepId().toString());
                        service.contractLogsJpaDao.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值