package com.ruoyi.finance.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; 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.StringUtils; import com.ruoyi.finance.domain.TFee; import com.ruoyi.finance.domain.TFeeDo; import com.ruoyi.finance.domain.TWareHouseFees; import com.ruoyi.finance.mapper.TFeeDoMapper; import com.ruoyi.finance.mapper.TFeeMapper; import com.ruoyi.finance.service.ITFeeService; import com.ruoyi.warehouseBusiness.domain.*; import com.ruoyi.warehouseBusiness.mapper.BillnoDelMapper; import com.ruoyi.warehouseBusiness.service.impl.BillnoSerialServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; /** * 财务数据主Service业务层处理 * * @author ruoyi * @date 2021-01-18 */ @Service public class TFeeServiceImpl implements ITFeeService { @Autowired private TFeeMapper tFeeMapper; @Autowired private TFeeDoMapper tFeeDoMapper; @Autowired private BillnoSerialServiceImpl billnoSerialServiceImpl; @Autowired private BillnoDelMapper billnoDelMapper; /** * 查询财务数据主 * * @param fId 财务数据主ID * @return 财务数据主 */ @Override public TFee selectTFeeById(Long fId) { return tFeeMapper.selectTFeeById(fId); } /** * 查询财务数据主列表 * * @param tFee 财务数据主 * @return 财务数据主 */ @Override public List selectTFeeList(TFee tFee) { return tFeeMapper.selectTFeeList(tFee); } /** * 新增财务数据主 * * @param tFee 财务数据主 * @return 结果 */ @Override public int insertTFee(TFee tFee) { tFee.setCreateTime(DateUtils.getNowDate()); return tFeeMapper.insertTFee(tFee); } /** * 新增对账 、收费、 * @param tfee * @param tfeeDo * @param loginUser * @param fBilltype * @return */ @Override public AjaxResult insertTFeeTFeeDo(String tfee, String tfeeDo, LoginUser loginUser, String fBilltype) { Long fPid = null; TFee tFee = JSONArray.parseObject(tfee, TFee.class); if (StringUtils.isNull(tFee.getfId())) { // 如果是新数据 tFee.setCreateBy(loginUser.getUser().getUserName()); tFee.setfBilltype(fBilltype); // 业务编码 Date time = new Date(); String billNo = billnoSerialServiceImpl.getBillNo(fBilltype, time); tFee.setfBillno(billNo); tFeeMapper.insertTFee(tFee); fPid = tFee.getfId(); } else { fPid = tFee.getfId(); tFee.setUpdateBy(loginUser.getUser().getUserName()); tFee.setUpdateTime(new Date()); tFeeMapper.updateTFee(tFee); // 删除从表 tFeeDoMapper.deleteByFPid(fPid); } // 财务从表 if (StringUtils.isNotNull(tfeeDo)) { JSONArray jsonDrArray = JSONArray.parseArray(tfeeDo); List tFeeDoList = JSONObject.parseArray(jsonDrArray.toJSONString(), TFeeDo.class); for (TFeeDo tFeeDo : tFeeDoList) { tFeeDo.setfPid(fPid); tFeeDo.setCreateBy(loginUser.getUser().getUserName()); tFeeDo.setCreateTime(new Date()); tFeeDoMapper.insertTFeeDo(tFeeDo); } } return AjaxResult.success(); } /** * 修改财务数据主 * * @param tFee 财务数据主 * @return 结果 */ @Override public int updateTFee(TFee tFee) { tFee.setUpdateTime(DateUtils.getNowDate()); return tFeeMapper.updateTFee(tFee); } /** * 批量删除财务数据主 * * @param fIds 需要删除的财务数据主ID * @return 结果 */ @Override public int deleteTFeeByIds(Long[] fIds) { // 取出业务编号、 放入 billno_del for (Long id : fIds) { // 1、查询主表信息 TFee tFee = tFeeMapper.selectTFeeById(id); // 2、业务编号、客存编号 放入 billno_del BillnoDel billnoDel = new BillnoDel(); billnoDel.setBillType(tFee.getfBilltype()); billnoDel.setBillNo(tFee.getfBillno()); billnoDelMapper.insertBillnoDel(billnoDel); } return tFeeMapper.deleteTFeeByIds(fIds); } /** * 删除财务数据主信息 * * @param fId 财务数据主ID * @return 结果 */ @Override public int deleteTFeeById(Long fId) { return tFeeMapper.deleteTFeeById(fId); } @Override public List> warehouseBillsFeesList(TWareHouseFees tWareHouseFees) { Map map = new HashMap<>(); map.put("tWareHouseFees", tWareHouseFees); return tFeeMapper.warehouseBillsFeesList(map); } }