| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344 |
- package com.ruoyi.anpin.service.impl;
- import java.util.*;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.ruoyi.anpin.domain.TCostManagement;
- import com.ruoyi.anpin.domain.TCostManagementItem;
- import com.ruoyi.anpin.mapper.TCostManagementItemMapper;
- import com.ruoyi.anpin.mapper.TCostManagementMapper;
- import com.ruoyi.anpin.service.ITCostManagementService;
- import com.ruoyi.approvalFlow.domain.AuditItems;
- import com.ruoyi.approvalFlow.service.impl.AuditItemsServiceImpl;
- import com.ruoyi.basicData.domain.TFees;
- import com.ruoyi.basicData.mapper.TFeesMapper;
- import com.ruoyi.common.core.domain.AjaxResult;
- import com.ruoyi.common.core.domain.model.LoginUser;
- import com.ruoyi.common.utils.DateUtils;
- import com.ruoyi.common.utils.SecurityUtils;
- import com.ruoyi.common.utils.StringUtils;
- import com.ruoyi.system.domain.SysConfig;
- import com.ruoyi.system.mapper.SysConfigMapper;
- import com.ruoyi.warehouseBusiness.domain.TEnclosure;
- import com.ruoyi.warehouseBusiness.mapper.TEnclosureMapper;
- import com.ruoyi.warehouseBusiness.service.impl.BillnoSerialServiceImpl;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.interceptor.TransactionAspectSupport;
- /**
- * 费用管理Service业务层处理
- *
- * @author ruoyi
- * @date 2023-03-13
- */
- @Service
- public class TCostManagementServiceImpl implements ITCostManagementService
- {
- @Autowired
- private TCostManagementMapper tCostManagementMapper;
- @Autowired
- private BillnoSerialServiceImpl billnoSerialServiceImpl;
- @Autowired
- private TCostManagementItemMapper tCostManagementItemMapper;
- @Autowired
- private TEnclosureMapper tEnclosureMapper;
- @Autowired
- private TFeesMapper tFeesMapper;
- @Autowired
- private SysConfigMapper sysConfigMapper;
- @Autowired
- private AuditItemsServiceImpl auditItemsService;
- /**
- * 查询费用管理
- *
- * @param fId 费用管理ID
- * @return 费用管理
- */
- @Override
- public Map<String, Object> selectTCostManagementById(Long fId)
- {
- Map<String, Object> map = new HashMap<>();
- //查询费用管理主表数据
- TCostManagement tCostManagement = tCostManagementMapper.selectTCostManagementById(fId);
- // 费用
- List<Long> feesId = new ArrayList<>();
- //查询明细信息
- TCostManagementItem tCostManagementItem = new TCostManagementItem();
- tCostManagementItem.setfPid(tCostManagement.getfId());
- List<TCostManagementItem> itemList = tCostManagementItemMapper.selectTCostManagementItemList(tCostManagementItem);
- if (StringUtils.isNotEmpty(itemList)) {
- for (TCostManagementItem fees : itemList) {
- feesId.add(fees.getExpenseId());
- }
- }
- //查询费用
- List<TFees> feesList = new ArrayList<>();
- List<Long> longList = StringUtils.integerDeduplication(feesId);
- for (Long fees : longList) {
- TFees tFees = tFeesMapper.selectTFeesById(fees);
- if (StringUtils.isNotNull(tFees)) {
- feesList.add(tFees);
- }
- }
- // 查询附件表数据
- TEnclosure enclosure = new TEnclosure();
- enclosure.setfPid(fId);
- List<TEnclosure> enclosures = tEnclosureMapper.selectTEnclosureList(enclosure);
- if (StringUtils.isNotEmpty(enclosures)) {
- map.put("enclosures", enclosures);
- }
- map.put("tCostManagement", tCostManagement);
- map.put("itemList", itemList);
- map.put("feesList", feesList);
- return map;
- }
- /**
- * 查询费用管理列表
- *
- * @param tCostManagement 费用管理
- * @return 费用管理
- */
- @Override
- public List<TCostManagement> selectTCostManagementList(TCostManagement tCostManagement)
- {
- return tCostManagementMapper.selectTCostManagementList(tCostManagement);
- }
- /**
- * 新增费用管理
- *
- * @param tCostManagement 费用管理
- * @return 结果
- */
- @Override
- public AjaxResult insertTCostManagement(String tCostManagement, String tCostManagementItem, String tEnclosure, LoginUser loginUser)
- {
- Map<String, Object> map = new HashMap<>();
- TCostManagement detailed = JSONArray.parseObject(tCostManagement, TCostManagement.class);
- //保存主表信息
- if (StringUtils.isNull(detailed.getfId())) {// 如果是新数据
- // 业务编码
- String billNo = billnoSerialServiceImpl.getBillNo("FY", new Date());
- detailed.setfNo(billNo);
- detailed.setCreateBy(loginUser.getUser().getUserName());
- detailed.setCreateTime(new Date());
- detailed.setCreateDept(String.valueOf(loginUser.getUser().getDeptId()));
- tCostManagementMapper.insertTCostManagement(detailed);
- } else {
- detailed.setUpdateBy(loginUser.getUser().getUserName());
- detailed.setUpdateTime(new Date());
- tCostManagementMapper.updateTCostManagement(detailed);
- }
- //获得明细信息并保存
- List<TCostManagementItem> itemList = new ArrayList<>();
- if (StringUtils.isNotNull(tCostManagementItem) && !"[]".equals(tCostManagementItem)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tCostManagementItem);
- itemList = JSONObject.parseArray(jsonDrArray.toJSONString(), TCostManagementItem.class);
- for (TCostManagementItem item : itemList) {
- if (StringUtils.isNull(item.getfId())) {// 如果是新数据
- item.setCreateBy(loginUser.getUser().getUserName());
- item.setCreateTime(new Date());
- item.setCreateDept(String.valueOf(loginUser.getUser().getDeptId()));
- tCostManagementItemMapper.insertTCostManagementItem(item);
- } else {
- item.setUpdateBy(loginUser.getUser().getUserName());
- item.setUpdateTime(new Date());
- tCostManagementItemMapper.updateTCostManagementItem(item);
- }
- }
- }
- //保存附件信息
- List<TEnclosure> enclosuresList = new ArrayList<>();
- if (StringUtils.isNotNull(tEnclosure) && !"[]".equals(tEnclosure)) {
- JSONArray jsonEnclosureArray = JSONArray.parseArray(tEnclosure);
- enclosuresList = JSONObject.parseArray(jsonEnclosureArray.toJSONString(), TEnclosure.class);
- long lineNo = 0L;
- for (TEnclosure enclosure : enclosuresList) {
- lineNo++;
- if (enclosure.getfId() == null) {
- enclosure.setfPid(detailed.getfId());
- enclosure.setfLineno(lineNo);
- enclosure.setCreateTime(new Date());
- enclosure.setCreateBy(loginUser.getUser().getUserName());
- tEnclosureMapper.insertTEnclosure(enclosure);
- } else {
- enclosure.setUpdateBy(loginUser.getUser().getUserName());
- enclosure.setUpdateTime(new Date());
- tEnclosureMapper.updateTEnclosure(enclosure);
- }
- }
- }
- map.put("tCostManagement",detailed);
- map.put("itemList", itemList);
- map.put("enclosuresList", enclosuresList);
- return AjaxResult.success("成功", map);
- }
- /**
- * 修改费用管理
- *
- * @param tCostManagement 费用管理
- * @return 结果
- */
- @Override
- public int updateTCostManagement(TCostManagement tCostManagement)
- {
- tCostManagement.setUpdateTime(DateUtils.getNowDate());
- return tCostManagementMapper.updateTCostManagement(tCostManagement);
- }
- /**
- * 批量删除费用管理
- *
- * @param fIds 需要删除的费用管理ID
- * @return 结果
- */
- @Override
- public int deleteTCostManagementByIds(Long[] fIds)
- {
- return tCostManagementMapper.deleteTCostManagementByIds(fIds);
- }
- /**
- * 删除费用管理信息
- *
- * @param fId 费用管理ID
- * @return 结果
- */
- @Override
- public int deleteTCostManagementById(Long fId)
- {
- return tCostManagementMapper.deleteTCostManagementById(fId);
- }
- @Override
- public AjaxResult submitCostManagement(String tCostManagement, String tCostManagementItem, String tEnclosure, LoginUser loginUser, String billType) {
- boolean isApprove = false;//是否开启审批流
- String key = "";//键
- long actId = 0L;//活动id
- Long billStatus = null;
- Integer i = null;
- Map<String, Object> map = new HashMap<>();
- if ("FYGL".equals(billType)) {
- actId = 560L;
- key = "anPingJingYuan.costManagement.ApprovalFlow";
- }
- SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique(key);
- if (StringUtils.isNull(sysConfig)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("系统参数异常,未找到开启审批流参数");
- }
- if ("0".equals(sysConfig.getConfigValue())) {
- isApprove = true;
- }
- if (isApprove) {
- billStatus = 1L;
- } else {
- billStatus = 3L;
- }
- TCostManagement detailed = JSONArray.parseObject(tCostManagement, TCostManagement.class);
- //保存主表信息
- if (StringUtils.isNull(detailed.getfId())) {// 如果是新数据
- // 业务编码
- String billNo = billnoSerialServiceImpl.getBillNo("FY", new Date());
- detailed.setfNo(billNo);
- detailed.setCreateBy(loginUser.getUser().getUserName());
- detailed.setCreateTime(new Date());
- detailed.setCreateDept(String.valueOf(loginUser.getUser().getDeptId()));
- tCostManagementMapper.insertTCostManagement(detailed);
- } else {
- detailed.setUpdateBy(loginUser.getUser().getUserName());
- detailed.setUpdateTime(new Date());
- tCostManagementMapper.updateTCostManagement(detailed);
- }
- //获得明细信息并保存
- List<TCostManagementItem> itemList = new ArrayList<>();
- if (StringUtils.isNotNull(tCostManagementItem) && !"[]".equals(tCostManagementItem)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tCostManagementItem);
- itemList = JSONObject.parseArray(jsonDrArray.toJSONString(), TCostManagementItem.class);
- for (TCostManagementItem item : itemList) {
- if (StringUtils.isNull(item.getfId())) {// 如果是新数据
- item.setCreateBy(loginUser.getUser().getUserName());
- item.setCreateTime(new Date());
- item.setCreateDept(String.valueOf(loginUser.getUser().getDeptId()));
- tCostManagementItemMapper.insertTCostManagementItem(item);
- } else {
- item.setUpdateBy(loginUser.getUser().getUserName());
- item.setUpdateTime(new Date());
- tCostManagementItemMapper.updateTCostManagementItem(item);
- }
- }
- }
- //保存附件信息
- List<TEnclosure> enclosuresList = new ArrayList<>();
- if (StringUtils.isNotNull(tEnclosure) && !"[]".equals(tEnclosure)) {
- JSONArray jsonEnclosureArray = JSONArray.parseArray(tEnclosure);
- enclosuresList = JSONObject.parseArray(jsonEnclosureArray.toJSONString(), TEnclosure.class);
- long lineNo = 0L;
- for (TEnclosure enclosure : enclosuresList) {
- lineNo++;
- if (enclosure.getfId() == null) {
- enclosure.setfPid(detailed.getfId());
- enclosure.setfLineno(lineNo);
- enclosure.setCreateTime(new Date());
- enclosure.setCreateBy(loginUser.getUser().getUserName());
- tEnclosureMapper.insertTEnclosure(enclosure);
- } else {
- enclosure.setUpdateBy(loginUser.getUser().getUserName());
- enclosure.setUpdateTime(new Date());
- tEnclosureMapper.updateTEnclosure(enclosure);
- }
- }
- }
- if (isApprove) {
- AuditItems auditItems = new AuditItems();
- auditItems.setLevelId(0L);
- auditItems.setBillId(detailed.getfId());
- auditItems.setActId(actId);
- auditItems.setIffinalItem("F");
- auditItems.setBillNo(detailed.getfNo());
- // 存储业务类型(业务类型)
- auditItems.setRefno2(billType);
- auditItems.setRefno3(detailed.getfNo());
- auditItems.setSendUserId(loginUser.getUser().getUserId());
- auditItems.setSendName(SecurityUtils.getUsername());
- auditItems.setSendTime(new Date());
- auditItems.setAuditUserId(loginUser.getUser().getUserId());
- auditItems.setAuditItem(new Date());
- auditItems.setAuditOpTime(new Date());
- auditItems.setAuditMsg("提交");
- auditItems.setAuditStatus("O");
- AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
- // Long code = Long.valueOf(String.valueOf(approvalFlow.get("code"))).longValue();
- String code = approvalFlow.get("code").toString();
- // Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- return approvalFlow;
- }
- map.put("tCostManagement",detailed);
- map.put("itemList", itemList);
- map.put("enclosuresList", enclosuresList);
- return null;
- }
- }
|