合同表和日志表
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.save(contractLogsEntity);