|
@@ -0,0 +1,137 @@
|
|
|
+package com.jeeplus.test.cw.projectRecords.service;
|
|
|
+
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
+import com.jeeplus.core.query.QueryWrapperGenerator;
|
|
|
+import com.jeeplus.sys.service.dto.UserDTO;
|
|
|
+import com.jeeplus.sys.utils.StringUtils;
|
|
|
+import com.jeeplus.sys.utils.UserUtils;
|
|
|
+import com.jeeplus.test.cw.projectRecords.domain.CwProjectRecords;
|
|
|
+import com.jeeplus.test.cw.projectRecords.mapper.CwProjectRecordsMapper;
|
|
|
+import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectClientInfoDTO;
|
|
|
+import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectRecordsDTO;
|
|
|
+import com.jeeplus.test.cw.projectRecords.service.mapstruct.CwProjectRecordsWrapper;
|
|
|
+import com.jeeplus.test.mould.service.SerialnumTplService;
|
|
|
+import com.jeeplus.test.oss.service.OssService;
|
|
|
+import org.springframework.http.ResponseEntity;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 财务项目登记service
|
|
|
+ * @author: 徐滕
|
|
|
+ * @version: 2022-11-10 14:56
|
|
|
+ */
|
|
|
+@Service
|
|
|
+@Transactional
|
|
|
+public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper, CwProjectRecords> {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private CwProjectRecordsMapper cwProjectRecordsMapper;
|
|
|
+ @Resource
|
|
|
+ private OssService ossService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SerialnumTplService serialnumTplService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 差选项目列表信息
|
|
|
+ * @param page
|
|
|
+ * @param cwProjectRecordsDTO
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ public IPage<CwProjectRecordsDTO> findList(Page<CwProjectRecordsDTO> page, CwProjectRecordsDTO cwProjectRecordsDTO) throws Exception{
|
|
|
+ QueryWrapper<CwProjectRecords> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( CwProjectRecordsWrapper.INSTANCE.toEntity(cwProjectRecordsDTO), CwProjectRecords.class );
|
|
|
+ queryWrapper.eq("a.del_flag","0");
|
|
|
+ queryWrapper.orderByDesc("a.create_date");
|
|
|
+ IPage<CwProjectRecordsDTO> list = cwProjectRecordsMapper.findList(page, queryWrapper);
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据id查询项目详情
|
|
|
+ * @param id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public CwProjectRecordsDTO queryById(String id) {
|
|
|
+ CwProjectRecordsDTO cwProjectRecordsDTO = cwProjectRecordsMapper.queryById(id);
|
|
|
+ return cwProjectRecordsDTO;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存项目以及其他相关信息
|
|
|
+ * @param cwProjectRecordsDTO
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ public String saveForm(CwProjectRecordsDTO cwProjectRecordsDTO) throws Exception{
|
|
|
+ if(StringUtils.isBlank(cwProjectRecordsDTO.getId())){
|
|
|
+ //获取当前登录人信息
|
|
|
+ UserDTO userDTO = UserUtils.getCurrentUserDTO();
|
|
|
+ //项目编号生成
|
|
|
+ String serialNum = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), CwProjectRecordsDTO.BIZ_CODE);
|
|
|
+ cwProjectRecordsDTO.setProjectNumber(serialNum);
|
|
|
+ }
|
|
|
+ CwProjectRecords cwProjectRecords = CwProjectRecordsWrapper.INSTANCE.toEntity(cwProjectRecordsDTO);
|
|
|
+ this.saveOrUpdate(cwProjectRecords);
|
|
|
+ if (ObjectUtil.isNotEmpty(cwProjectRecordsDTO)) {
|
|
|
+ // 附件
|
|
|
+ ossService.saveOrUpdateFileList(cwProjectRecordsDTO.getWorkAttachmentDtoList(),cwProjectRecords.getId(),"cw_project_repords");
|
|
|
+ // 被服务单位
|
|
|
+ //根据项目id删除原有的被服务单位数据信息
|
|
|
+ cwProjectRecordsMapper.deleteProjectClientInfoByProjectId(cwProjectRecordsDTO.getId());
|
|
|
+
|
|
|
+ if(null != cwProjectRecordsDTO.getCwProjectClientInfoDTOList() && cwProjectRecordsDTO.getCwProjectClientInfoDTOList().size()>0){
|
|
|
+ //根据项目id添加新的被服务单位信息
|
|
|
+ List<CwProjectClientInfoDTO> cwProjectClientInfoDTOList = cwProjectRecordsDTO.getCwProjectClientInfoDTOList();
|
|
|
+ for (CwProjectClientInfoDTO projectClientInfo : cwProjectClientInfoDTOList) {
|
|
|
+ projectClientInfo.setProjectId(cwProjectRecordsDTO.getId());
|
|
|
+ }
|
|
|
+ //对数据进行批量插入
|
|
|
+ cwProjectRecordsMapper.insertProjectClientInfoList(cwProjectClientInfoDTOList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return cwProjectRecords.getId();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存项目信息
|
|
|
+ * @param cwProjectRecordsDTO
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ public ResponseEntity save(CwProjectRecordsDTO cwProjectRecordsDTO) throws Exception{
|
|
|
+ this.saveForm(cwProjectRecordsDTO);
|
|
|
+ return ResponseEntity.ok("保存成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据id删除项目信息
|
|
|
+ * @param ids
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ResponseEntity deleteByIds(String ids) {
|
|
|
+ String idArray[] =ids.split(",");
|
|
|
+ this.removeByIds (Lists.newArrayList (idArray));
|
|
|
+ return ResponseEntity.ok ("删除成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改状态
|
|
|
+ * @param cwProjectRecordsDTO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String updateStatusById(CwProjectRecordsDTO cwProjectRecordsDTO) {
|
|
|
+ CwProjectRecords cwProjectRecords = CwProjectRecordsWrapper.INSTANCE.toEntity(cwProjectRecordsDTO);
|
|
|
+ cwProjectRecordsMapper.update(cwProjectRecords, new QueryWrapper<CwProjectRecords>().lambda().eq(CwProjectRecords::getId, cwProjectRecords.getId()));
|
|
|
+ return "操作成功";
|
|
|
+ }
|
|
|
+}
|