package com.thhy.pm.modules.biz.contract.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.thhy.general.common.BasicResult; import com.thhy.general.config.SysUserInfo; import com.thhy.general.utils.UserInfoUtils; import com.thhy.pm.modules.biz.contract.entity.Contracfile; import com.thhy.pm.modules.biz.contract.entity.Contract; import com.thhy.pm.modules.biz.contract.entity.ContractFileListVo; import com.thhy.pm.modules.biz.contract.entity.ContractListVo; import com.thhy.pm.modules.biz.contract.mapper.ContracfileMapper; import com.thhy.pm.modules.biz.contract.mapper.ContractMapper; import com.thhy.pm.modules.biz.contract.service.ContractService; import com.thhy.pm.modules.biz.file.service.FileService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.Date; import java.util.List; /** * 服务实现类 * @author zhang_xiao_bo * @since 2023-04-25 11:00:40 */ @Service public class ContractServiceImpl implements ContractService { @Autowired private ContractMapper contractMapper; @Autowired private ContracfileMapper contracfileMapper; @Autowired private FileService fileService; public Contract get(Serializable id){ return contractMapper.queryById(id); } public List findList(Contract contract){ SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo(); return contractMapper.findList(contract.setCompanyId(userInfo.getCompanyId())); } @Override public List fileList(Contracfile contracfile) { List fileListVoList = contracfileMapper.findList(contracfile); fileListVoList.forEach(fl->{ JSONObject json = new JSONObject(); json.put("fullpath",fl.getContractFile()); BasicResult basicResult = fileService.fileinfo(json.toJSONString()); if(basicResult.isSuccess()){ JSONArray jsonArray = JSONArray.parseArray(basicResult.getData().toString()); for(Object obj : jsonArray){ JSONObject j = JSON.parseObject(obj.toString()); if(j.containsKey("name")&&"name".equals(j.getString("name"))){ fl.setContractFileName(j.getString("value")); } } } }); return fileListVoList; } /** * 增加和修改 * @param contract */ @Transactional public void addContract(Contract contract){ SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo(); List contracfileList = contract.getContracfileList(); if(contract.getContractId() == null){ //增加操作 contract.setCreateUser(userInfo.getUserId()); contractMapper.insert(contract); }else{ //修改操作 contract.setUpdateUser(userInfo.getUserId()); contract.setUpdateTime(new Date()); contractMapper.update(contract); contracfileMapper.deleteByContractId(contract.getContractId()); } for(Contracfile file : contracfileList){ file.setContractId(contract.getContractId()); contracfileMapper.insert(file); } } /** * 修改 * @param contract */ public void update(Contract contract){ contractMapper.update(contract); } /** * 删除 * @param contractId */ public void delete(Serializable contractId){ contractMapper.deletelogic(contractId); } }