12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118 |
- package com.ruoyi.warehouseBusiness.service.impl;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.ruoyi.basicData.domain.*;
- import com.ruoyi.basicData.mapper.*;
- import com.ruoyi.common.core.domain.AjaxResult;
- import com.ruoyi.common.core.domain.entity.SysUser;
- import com.ruoyi.common.core.domain.model.LoginUser;
- import com.ruoyi.common.utils.DateUtils;
- import com.ruoyi.common.utils.StringUtils;
- import com.ruoyi.reportManagement.domain.TWhgenleg;
- import com.ruoyi.reportManagement.mapper.TWhgenlegMapper;
- import com.ruoyi.system.mapper.SysDeptMapper;
- import com.ruoyi.system.mapper.SysUserMapper;
- import com.ruoyi.warehouseBusiness.domain.*;
- import com.ruoyi.warehouseBusiness.mapper.*;
- import com.ruoyi.warehouseBusiness.service.ITWarehouseBillsService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.transaction.interceptor.TransactionAspectSupport;
- import java.math.BigDecimal;
- import java.util.*;
- /**
- * 详情主表Service业务层处理
- *
- * @author ruoyi
- * @date 2020-12-11
- */
- @Service
- public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
- @Autowired
- private TWhgenlegMapper tWhgenlegMapper;
- @Autowired
- private TGoodsMapper tGoodsMapper;
- @Autowired
- private SysDeptMapper sysDeptMapper;
- @Autowired
- private SysUserMapper sysUserMapper;
- @Autowired
- private TCorpsMapper tCorpsMapper;
- @Autowired
- private TFeesMapper tFeesMapper;
- @Autowired
- private TWarehouseMapper tWarehouseMapper;
- @Autowired
- private TWarehouseAreaMapper tWarehouseAreaMapper;
- @Autowired
- private TEnclosureMapper tEnclosureMapper;
- @Autowired
- private TWarehouseBillsMapper tWarehouseBillsMapper;
- @Autowired
- private TWarehousebillsfeesMapper tWarehousebillsfeesMapper;
- @Autowired
- private TWarehousebillsitemsMapper tWarehousebillsitemsMapper;
- @Autowired
- private BillnoSerialServiceImpl billnoSerialServiceImpl;
- @Autowired
- private BillnoDelMapper billnoDelMapper;
- @Autowired
- private TWarehouseAgreementServiceImpl tWarehouseAgreementService;
- /**
- * 查询详情主表
- *
- * @param fId 详情主表ID
- * @return 详情主表
- */
- @Override
- public Map<String, Object> selectTWarehousebillsById(Long fId) {
- Map<String, Object> map = new HashMap<>();
- // 查询仓库主表数据
- TWarehouseBills tWarehousebills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
- // 客户表
- List<Long> corpsId = new ArrayList<>();
- // 用户表
- List<SysUser> sysUserList = new ArrayList<>();
- // 仓库表
- List<TWarehouse> warehouseList = new ArrayList<>();
- // 商品
- List<Long> goodsId = new ArrayList<>();
- // 费用
- List<Long> feesId = new ArrayList<>();
- // 库区
- List<Long> warehouseAreaId = new ArrayList<>();
- if (!StringUtils.isNull(tWarehousebills)) {
- if (StringUtils.isNotNull(tWarehousebills.getfTocorpid())) {
- corpsId.add(tWarehousebills.getfTocorpid());
- }
- corpsId.add(tWarehousebills.getfCorpid());
- // 查询联系人
- SysUser sysUser = sysUserMapper.selectUserByUserName(tWarehousebills.getfStorekeeper());
- if (StringUtils.isNotNull(sysUser)) {
- sysUserList.add(sysUser);
- }
- // 查询仓库
- TWarehouse tWarehouse = tWarehouseMapper.selectTWarehouseById(tWarehousebills.getfWarehouseid());
- if (StringUtils.isNotNull(tWarehouse)) {
- warehouseList.add(tWarehouse);
- }
- // 查询经营单位
- corpsId.add(tWarehousebills.getfSbu());
- map.put("warehousebills", tWarehousebills);
- }
- // 查询仓库明细从表数据
- TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
- tWarehousebillsitems.setfPid(fId);
- List<Map<String, Object>> mapList = tWarehousebillsitemsMapper.selectGoodsTransferitemsList(tWarehousebillsitems);
- if (StringUtils.isNotEmpty(mapList)) {
- for (Map<String, Object> wb : mapList) {
- /*TWhgenleg tWhgenleg = new TWhgenleg();
- tWhgenleg.setfCorpid(tWarehousebills.getfCorpid());
- if (StringUtils.isNotNull(wb.get("fGoodsid"))) {
- tWhgenleg.setfGoodsid(((Integer) wb.get("fGoodsid")).longValue());
- }
- if (StringUtils.isNotNull(wb.get("fWarehouselocid"))) {
- tWhgenleg.setfWarehouseLocationid(((Integer) wb.get("fWarehouselocid")).longValue());
- }
- tWhgenleg.setfTrademodeid(tWarehousebills.getfTrademodeid());
- tWhgenleg.setfMblno(tWarehousebills.getfMblno());
- TWhgenleg whgenleg = tWhgenlegMapper.selectTWhgenleg(tWhgenleg);
- if (StringUtils.isNotNull(whgenleg)) {
- wb.put("fQtyblc", whgenleg.getfQtyblc());
- }*/
- if (StringUtils.isNotNull(wb.get("fGoodsid"))) {
- Integer fGoodsid = (Integer) wb.get("fGoodsid");
- goodsId.add(fGoodsid.longValue());
- }
- if (StringUtils.isNotNull(wb.get("fWarehouselocid"))) {
- Integer fWarehouselocid = (Integer) wb.get("fWarehouselocid");
- warehouseAreaId.add(fWarehouselocid.longValue());
- }
- }
- map.put("warehouseBillsItem", mapList);
- }
- // 查询仓库费用明细表数据
- TWarehousebillsfees tWarehousebillsfees = new TWarehousebillsfees();
- tWarehousebillsfees.setfPid(fId);
- List<TWarehousebillsfees> warehousebillsfeesDr = new ArrayList<>();
- List<TWarehousebillsfees> warehousebillsfeesCr = new ArrayList<>();
- List<TWarehousebillsfees> warehousebillsfees = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(tWarehousebillsfees);
- if (StringUtils.isNotEmpty(warehousebillsfees)) {
- for (TWarehousebillsfees fees : warehousebillsfees) {
- if ("C".equals(fees.getfDc())) {
- warehousebillsfeesCr.add(fees);
- } else {
- warehousebillsfeesDr.add(fees);
- }
- corpsId.add(fees.getfCorpid());
- feesId.add(fees.getfFeeid());
- }
- }
- // 查询附件表数据
- TEnclosure enclosure = new TEnclosure();
- enclosure.setfPid(fId);
- List<TEnclosure> enclosures = tEnclosureMapper.selectTEnclosureList(enclosure);
- if (StringUtils.isNotEmpty(enclosures)) {
- map.put("enclosures", enclosures);
- }
- List<TCorps> corpsList = new ArrayList<>();
- List<Long> corpsIdList = StringUtils.integerDeduplication(corpsId);
- for (Long corpId : corpsIdList) {
- TCorps corps = tCorpsMapper.selectTCorpsById(corpId);
- if (StringUtils.isNotNull(corps)) {
- corpsList.add(corps);
- }
- }
- List<TWarehouseArea> warehouseAreaList = new ArrayList<>();
- List<Long> warehouseAreaIdList = StringUtils.integerDeduplication(warehouseAreaId);
- for (Long warehouseArea : warehouseAreaIdList) {
- TWarehouseArea tWarehouseArea = tWarehouseAreaMapper.selectTWarehouseAreaById(warehouseArea);
- if (StringUtils.isNotNull(tWarehouseArea)) {
- warehouseAreaList.add(tWarehouseArea);
- }
- }
- List<TGoods> goodsList = new ArrayList<>();
- List<Long> goodsIdList = StringUtils.integerDeduplication(goodsId);
- for (Long goods : goodsIdList) {
- TGoods tGoods = tGoodsMapper.selectTGoodsById(goods);
- if (StringUtils.isNotNull(tGoods)) {
- goodsList.add(tGoods);
- }
- }
- 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);
- }
- }
- map.put("corps", corpsList);
- map.put("goodsList", goodsList);
- map.put("feesList", feesList);
- map.put("sysUser", sysUserList);
- map.put("warehouse", warehouseList);
- map.put("warehouseAreas", warehouseAreaList);
- map.put("warehousebillsfeesDr", warehousebillsfeesDr);
- map.put("warehousebillsfeesCr", warehousebillsfeesCr);
- map.put("dept", sysDeptMapper.selectDeptById(tWarehousebills.getfDeptid()));
- return map;
- }
- /**
- * 查询详情主表列表
- *
- * @param tWarehousebills 详情主表
- * @return 详情主表
- */
- @Override
- public List<Map<String, Object>> selectWarehouseBusinessList(TWarehouseBills tWarehousebills) {
- return tWarehouseBillsMapper.selectWarehouseBusinessList(tWarehousebills);
- }
- /**
- * 查询导出所需主表列表
- *
- * @param tWarehousebills 详情主表
- * @return 详情主表
- */
- @Override
- public List<TWarehouseBills> selectTWarehousebillsList(TWarehouseBills tWarehousebills) {
- return tWarehouseBillsMapper.selectTWarehousebillsList(tWarehousebills);
- }
- /**
- * 根据条件查询总账是否存在
- *
- * @param warehouseBills 仓库主表
- * @param warehousebillsitems 仓库明细表
- * @return 库存总账
- */
- public TWhgenleg queryTWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems warehousebillsitems) {
- TWhgenleg tWhgenleg = new TWhgenleg();
- // 客户
- tWhgenleg.setfCorpid(warehouseBills.getfCorpid());
- // 提单号
- if ("HQZY".equals(warehouseBills.getfBilltype())) {
- tWhgenleg.setfMblno(warehousebillsitems.getfMblno());
- } else {
- tWhgenleg.setfMblno(warehouseBills.getfMblno());
- }
- // 库区
- tWhgenleg.setfWarehouseLocationid(warehousebillsitems.getfWarehouselocid());
- // 货物品名
- tWhgenleg.setfGoodsid(warehousebillsitems.getfGoodsid());
- // 贸易方式
- tWhgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
- return tWhgenlegMapper.selectTWhgenleg(tWhgenleg);
- }
- /**
- * 新增库存总账
- *
- * @param warehouseBills 仓库主表
- * @param warehousebillsitems 仓库明细表
- * @return 结果
- */
- @Transactional
- public int instalTWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems warehousebillsitems, SysUser user) {
- TWhgenleg tWhgenleg = new TWhgenleg();
- if ("SJRK".equals(warehouseBills.getfBilltype()) || "HQZY".equals(warehouseBills.getfBilltype())) {
- tWhgenleg.setfOriginalbilldate(new Date());
- }
- // 客户
- tWhgenleg.setfCorpid(warehouseBills.getfCorpid());
- // 提单号
- tWhgenleg.setfMblno(warehouseBills.getfMblno());
- // 原始单号
- tWhgenleg.setfOriginalbillno(warehouseBills.getfMblno());
- // 仓库
- tWhgenleg.setfWarehouseid(warehouseBills.getfWarehouseid());
- // 库区
- tWhgenleg.setfWarehouseLocationid(warehousebillsitems.getfWarehouselocid());
- // 货物品名
- tWhgenleg.setfGoodsid(warehousebillsitems.getfGoodsid());
- // 计费方式
- tWhgenleg.setfBillingway(warehousebillsitems.getfBillingway());
- // 仓储计费日期
- tWhgenleg.setfChargedate(warehousebillsitems.getfChargedate());
- // 贸易方式
- tWhgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
- // 入库数
- tWhgenleg.setfQtyd(warehousebillsitems.getfQty());
- // 入库尺码
- tWhgenleg.setfVolumnd(warehousebillsitems.getfVolumn());
- // 唛头
- tWhgenleg.setfMarks(warehousebillsitems.getfMarks());
- // 入库毛重
- tWhgenleg.setfGrossweightd(warehousebillsitems.getfGrossweight());
- // 入库净重
- tWhgenleg.setfNetweightd(warehousebillsitems.getfNetweight());
- // 入库箱号
- tWhgenleg.setfCntrno(warehousebillsitems.getfCntrno());
- // 创建人
- tWhgenleg.setCreateBy(user.getUserName());
- // 创建人
- tWhgenleg.setCreateTime(new Date());
- // 状态
- tWhgenleg.setfStatus("T");
- // 结余件数
- tWhgenleg.setfQtyblc(warehousebillsitems.getfQty());
- System.out.println("主表新增:" + warehouseBills.toString());
- System.out.println("要添加的总账:" + tWhgenleg.toString());
- return tWhgenlegMapper.insertTWhgenleg(tWhgenleg);
- }
- @Transactional
- public int updateTWhgenlegData(TWarehousebillsitems warehousebillsitems, long whgenlegId, String billtype) {
- Map<String, Object> map = new HashMap<>();
- map.put("whgenlegId", whgenlegId);
- map.put("billType", billtype);
- map.put("warehousebillsitems", warehousebillsitems);
- return tWhgenlegMapper.updateTWhgenlegData(map);
- }
- /**
- * 新增详情主表
- *
- * @param tWarehouseBills 仓库主表
- * @param tWarehousebillsfeesCr 仓库费付款用明细表
- * @param tWarehousebillsfeesDr 仓库费收
- * 款用明细表
- * @param tWarehousebillsitems 仓库货物明细表
- * @param loginUser 当前登陆人
- * @param billsType 判断标识
- * @return 结果
- */
- @Override
- @Transactional
- public AjaxResult insertTWarehousebills(String tWarehouseBills, String tWarehousebillsfeesCr, String tWarehousebillsfeesDr
- , String tWarehousebillsitems, String tWhgenleg, LoginUser loginUser, String billsType) {
- Long fPid = null;
- TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehouseBills, TWarehouseBills.class);
- if (StringUtils.isNull(warehouseBills.getfId())) {
- // 如果是新数据
- warehouseBills.setCreateBy(loginUser.getUser().getUserName());
- warehouseBills.setfChargedate(warehouseBills.getfBsdate());
- warehouseBills.setfBilltype(billsType);
- warehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
- /*// 提交时: 生流水号
- if ("6".equals(warehouseBills.getfBillstatus()) || "7".equals(warehouseBills.getfBillstatus())) {
- // 业务编码
- String billNo = billnoSerialServiceImpl.getBillNo(billsType, warehouseBills.getfBsdate());
- warehouseBills.setfBillno(billNo);
- // 存货编码
- Date time = new Date();
- String bscorpno = billnoSerialServiceImpl.getCorpNo(warehouseBills.getfCorpid(), time);
- warehouseBills.setfBscorpno(bscorpno);
- }*/
- // 业务编码
- String billNo = billnoSerialServiceImpl.getBillNo(billsType, warehouseBills.getfBsdate());
- warehouseBills.setfBillno(billNo);
- // 存货编码
- Date time = new Date();
- String bscorpno = billnoSerialServiceImpl.getCorpNo(warehouseBills.getfCorpid(), time);
- warehouseBills.setfBscorpno(bscorpno);
- tWarehouseBillsMapper.insertTWarehousebills(warehouseBills);
- fPid = warehouseBills.getfId();
- } else {
- fPid = warehouseBills.getfId();
- warehouseBills.setfChargedate(warehouseBills.getfBsdate());
- warehouseBills.setUpdateBy(loginUser.getUser().getUserName());
- warehouseBills.setUpdateTime(new Date());
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- tWarehousebillsitemsMapper.deleteByFPid(fPid);
- tWarehousebillsfeesMapper.deleteByFPid(fPid);
- tEnclosureMapper.deleteByFPid(fPid);
- }
- // 查询库存总账 库存明细不为空 并且 入库不是暂存状态 进行库存总账的查询新增修改
- if (tWarehousebillsitems != null && !"2".equals(warehouseBills.getfBillstatus())) {
- JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
- List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
- int i = 1;
- for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
- // 查询总账是否存在
- TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, wbItem);
- // 入库数特殊不判断入账
- if ("SJCK".equals(billsType)) { // 出库 查询
- if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存为空");
- } else { // 非空修改库存总账
- if ("6".equals(warehouseBills.getfBillstatus())) {
- // 库存 < 出库件数 提示库存不足
- if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存不足");
- }
- updateTWhgenlegData(wbItem, tWhgenle.getfId(), billsType);
- }
- }
- } else if ("CKDB".equals(billsType)) { // 调拨查询
- if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存为空");
- } else { // 非空修改库存总账
- if ("6".equals(warehouseBills.getfBillstatus())) {
- if (tWhgenle.getfQtyblc() < wbItem.getfQty()) { // 1、 库存 < 调拨件数 提示库存不足
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存不足");
- } else { // 2、 库存足够 先 进行出库操作
- updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
- }
- // 3、 进行入库操作 查询是否存在库存
- warehouseBills.setfCorpid(warehouseBills.getfTocorpid()); // 新货权方
- TWhgenleg tWhgenle1 = queryTWhgenleg(warehouseBills, wbItem);
- if (StringUtils.isNull(tWhgenle1)) { // 5、 不存在 进行新增库存
- instalTWhgenleg(warehouseBills, wbItem, loginUser.getUser());
- } else { // 4、 存在 进行跟新库存
- if ("6".equals(warehouseBills.getfBillstatus())) {
- updateTWhgenlegData(wbItem, tWhgenle1.getfId(), "SJRK");
- }
- }
- }
- }
- } else if ("HQZY".equals(billsType)) { // 货转
- if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存为空");
- } else { // 非空修改库存总账
- if ("6".equals(warehouseBills.getfBillstatus())) {
- if (tWhgenle.getfQtyblc() < wbItem.getfQty()) { // 1、 库存 < 调拨件数 提示库存不足
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存不足");
- } else { // 2、 库存足够 先 进行出库操作
- updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
- }
- // 3、 进行入库操作 查询是否存在库存
- warehouseBills.setfCorpid(warehouseBills.getfTocorpid()); // 新货权方
- TWhgenleg tWhgenle1 = queryTWhgenleg(warehouseBills, wbItem);
- if (StringUtils.isNull(tWhgenle1)) { // 5、 不存在 进行新增库存
- instalTWhgenleg(warehouseBills, wbItem, loginUser.getUser());
- } else { // 4、 存在 进行跟新库存
- updateTWhgenlegData(wbItem, tWhgenle1.getfId(), "SJRK");
- }
- }
- }
- }
- i++;
- }
- }
- // 库存明细添加
- if (tWarehousebillsitems != null) {
- JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
- List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
- int notInStorage = 0;
- int Stored = 0;
- for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
- if (wbItem.getfBillstatus() == null) {
- wbItem.setfBillstatus("1");
- notInStorage++;
- } else if (wbItem.getfBillstatus().equals("6")) {
- wbItem.setfBillstatus("6");
- Stored++;
- } else if (wbItem.getfBillstatus().equals("1")) {
- wbItem.setfBillstatus("1");
- notInStorage++;
- }
- wbItem.setfPid(fPid);
- wbItem.setfMarks(warehouseBills.getfMarks());
- wbItem.setfMblno(warehouseBills.getfMblno());
- wbItem.setCreateBy(loginUser.getUser().getUserName());
- wbItem.setCreateTime(new Date());
- tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
- }
- // 录入库存明细整体状态
- TWarehouseBills warehouseBill = new TWarehouseBills();
- warehouseBill.setfId(fPid);
- if (Objects.equals(Stored, 0)) { // 未入库
- warehouseBill.setfItemsStatus("1");
- } else if (Objects.equals(notInStorage, 0)) { // 已入库
- warehouseBill.setfItemsStatus("6");
- } else { // 有已入库、有未入库
- warehouseBill.setfItemsStatus("2");
- }
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBill);
- }
- // 附件添加
- if (StringUtils.isNotNull(tWhgenleg)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tWhgenleg);
- List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
- for (TEnclosure tEnclosure : tEnclosureList) {
- tEnclosure.setfPid(fPid);
- tEnclosure.setCreateBy(loginUser.getUser().getUserName());
- tEnclosure.setCreateTime(new Date());
- tEnclosureMapper.insertTEnclosure(tEnclosure);
- }
- }
- // 收款明细添加
- if (tWarehousebillsfeesDr != null) {
- JSONArray jsonDrArray = JSONArray.parseArray(tWarehousebillsfeesDr);
- List<TWarehousebillsfees> warehousebillsfeesDrList = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbDr : warehousebillsfeesDrList) {
- // 检验 数量*单价=金额
- wbDr.setfPid(fPid);
- wbDr.setfDc("D");
- wbDr.setCreateBy(loginUser.getUser().getUserName());
- wbDr.setCreateTime(new Date());
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
- }
- }
- // 付款明细添加
- if (tWarehousebillsfeesCr != null) {
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesCr);
- List<TWarehousebillsfees> warehousebillsfeesCrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbCr : warehousebillsfeesCrList) {
- wbCr.setfPid(fPid);
- wbCr.setfDc("C");
- wbCr.setCreateBy(loginUser.getUser().getUserName());
- wbCr.setCreateTime(new Date());
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
- }
- }
- if ("2".equals(warehouseBills.getfBillstatus())) {
- return AjaxResult.success(warehouseBills);
- }
- return AjaxResult.success();
- }
- /**
- * 入库详情入账
- *
- * @param warehouseBills 主表
- * @param warehousebillsitems 明细
- * @param whgenleg 附件
- * @param loginUser 当前登录人
- * @param billsType 状态
- * @return 结果
- */
- @Override
- @Transactional
- public AjaxResult addCredit(String warehouseBills, String warehousebillsitems, String whgenleg, LoginUser loginUser, String billsType) {
- Long fPid = null;
- if (StringUtils.isNull(warehouseBills) || "[]".equals(warehouseBills)) {
- return AjaxResult.error("未找到主表信息");
- }
- if (StringUtils.isNull(warehousebillsitems) || "[]".equals(warehousebillsitems)) {
- return AjaxResult.error("未找到入账信息");
- }
- TWarehouseBills tWarehouseBills = JSONArray.parseObject(warehouseBills, TWarehouseBills.class);
- if (StringUtils.isNotNull(tWarehouseBills.getfId())) {
- tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
- tWarehouseBills.setUpdateTime(new Date());
- tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
- fPid = tWarehouseBills.getfId();
- tEnclosureMapper.deleteByFPid(fPid);
- } else {
- // 业务编码
- String billNo = billnoSerialServiceImpl.getBillNo(billsType, tWarehouseBills.getfBsdate());
- tWarehouseBills.setfBillno(billNo);
- // 存货编码
- Date time = new Date();
- String bscorpno = billnoSerialServiceImpl.getCorpNo(tWarehouseBills.getfCorpid(), time);
- tWarehouseBills.setfBscorpno(bscorpno);
- tWarehouseBills.setCreateBy(loginUser.getUser().getUserName());
- tWarehouseBills.setCreateTime(new Date());
- tWarehouseBills.setfBilltype("SJRK");
- tWarehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
- // 已入账
- tWarehouseBills.setfBillstatus("2");
- tWarehouseBillsMapper.insertTWarehousebills(tWarehouseBills);
- fPid = tWarehouseBills.getfId();
- }
- JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
- List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
- for (TWarehousebillsitems item : warehousebillsitemsList) {
- // 唛头添加
- item.setfMarks(tWarehouseBills.getfMarks());
- item.setfBillingway(tWarehouseBills.getfBillingway());
- item.setfChargedate(tWarehouseBills.getfChargedate());
- TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, item);
- if (StringUtils.isNotNull(tWhgenle)) {
- int i = updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
- if (i <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存总账失败");
- }
- } else {
- if (instalTWhgenleg(tWarehouseBills, item, loginUser.getUser()) <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("新增库存总账失败");
- }
- }
- item.setfPid(fPid);
- item.setfBillstatus("6");
- item.setCreateBy(loginUser.getUser().getUserName());
- item.setCreateTime(new Date());
- int num = 0;
- if (StringUtils.isNotNull(item.getfId())) {
- num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
- } else {
- num = tWarehousebillsitemsMapper.insertTWarehousebillsitems(item);
- }
- if (num <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("新增库存明细失败");
- }
- }
- // 查询所有库存明细 修改仓库主表状态
- int notInStorage = 0;
- int Stored = 0;
- TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
- tWarehousebillsitems.setfPid(fPid);
- List<TWarehousebillsitems> warehousebillsitemsList1 = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
- for (TWarehousebillsitems item : warehousebillsitemsList1) {
- if (item.getfBillstatus() == null) {
- notInStorage++;
- } else if (item.getfBillstatus().equals("6")) {
- Stored++;
- } else if (item.getfBillstatus().equals("1")) {
- notInStorage++;
- }
- }
- // 录入库存明细整体状态
- TWarehouseBills warehouseBill = new TWarehouseBills();
- warehouseBill.setfId(fPid);
- if (Objects.equals(Stored, 0)) { // 未入库
- warehouseBill.setfItemsStatus("1");
- } else if (Objects.equals(notInStorage, 0)) { // 已入库
- warehouseBill.setfItemsStatus("6");
- } else { // 有已入库、有未入库
- warehouseBill.setfItemsStatus("2");
- }
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBill);
- if (StringUtils.isNotNull(whgenleg) && !"[]".equals(whgenleg)) {
- JSONArray jsonDrArray = JSONArray.parseArray(whgenleg);
- List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
- for (TEnclosure tEnclosure : tEnclosureList) {
- tEnclosure.setfPid(fPid);
- tEnclosure.setCreateBy(loginUser.getUser().getUserName());
- tEnclosure.setCreateTime(new Date());
- tEnclosureMapper.insertTEnclosure(tEnclosure);
- }
- }
- // 添加成功 主键返回 前台
- return AjaxResult.success("成功", fPid);
- }
- /**
- * 出库、调拨、货转 确认
- *
- * @param warehouseBills
- * @param warehousebillsitems
- * @param loginUser
- * @param billsType
- * @return
- */
- @Override
- @Transactional
- public AjaxResult updateCredit(String warehouseBills, String warehousebillsitems, LoginUser loginUser, String billsType) {
- Long fPid = null;
- Map<String, Object> map = new HashMap<>();
- if (StringUtils.isNull(warehouseBills) || "[]".equals(warehouseBills)) {
- return AjaxResult.error("未找到主表信息");
- }
- if (StringUtils.isNull(warehousebillsitems) || "[]".equals(warehousebillsitems)) {
- return AjaxResult.error("未找到入账信息");
- }
- TWarehouseBills tWarehouseBills = JSONArray.parseObject(warehouseBills, TWarehouseBills.class);
- if (StringUtils.isNotNull(tWarehouseBills.getfId())) {
- tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
- tWarehouseBills.setUpdateTime(new Date());
- tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
- fPid = tWarehouseBills.getfId();
- tEnclosureMapper.deleteByFPid(fPid);
- } else {
- // 业务编码
- String billNo = billnoSerialServiceImpl.getBillNo(billsType, tWarehouseBills.getfBsdate());
- tWarehouseBills.setfBillno(billNo);
- // 存货编码
- Date time = new Date();
- String bscorpno = billnoSerialServiceImpl.getCorpNo(tWarehouseBills.getfCorpid(), time);
- tWarehouseBills.setfBscorpno(bscorpno);
- tWarehouseBills.setCreateBy(loginUser.getUser().getUserName());
- tWarehouseBills.setCreateTime(new Date());
- tWarehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
- // 已入账
- tWarehouseBills.setfBillstatus("2");
- tWarehouseBills.setfBilltype(billsType);
- tWarehouseBillsMapper.insertTWarehousebills(tWarehouseBills);
- fPid = tWarehouseBills.getfId();
- }
- JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
- List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
- int i = 1;
- List<TFees> feesList = new ArrayList<>();
- List<TWarehousebillsfees> warehousebillsfees = new ArrayList<>();
- for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
- // 唛头添加
- wbItem.setfMarks(tWarehouseBills.getfMarks());
- // 查询总账是否存在
- TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, wbItem);
- // 入库数特殊不判断入账
- if ("SJCK".equals(billsType)) { // 出库 查询
- if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存为空");
- } else { // 非空修改库存总账
- // 库存 < 出库件数 、
- if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存不足");
- }
- // 更新库存总账
- updateTWhgenlegData(wbItem, tWhgenle.getfId(), billsType);
- if (StringUtils.isNull(tWarehouseBills.getfBsdate()) || StringUtils.isNull(wbItem.getfChargedate())) {
- return AjaxResult.error("库存明细第" + i + "行请检查日期,操作终止");
- }
- long dateDay = DateUtils.getDateDay(tWarehouseBills.getfBsdate(), wbItem.getfChargedate());
- if (StringUtils.isNull(tWarehouseBills.getfCorpid())) {
- return AjaxResult.error("库存明细第" + i + "行请检查客户信息,操作终止");
- }
- long fCorpid = tWarehouseBills.getfCorpid();
- TGoods tGoods = tGoodsMapper.selectTGoodsById(wbItem.getfGoodsid());
- long fGoodsid = tGoods.getfTypeid();
- long fBillingway = wbItem.getfBillingway();
- long fQty = wbItem.getfQty();
- // 计算仓储费明细
- Map<String, Object> objectMap = tWarehouseAgreementService.getCarryingCost(fCorpid, fGoodsid, dateDay, fBillingway, fQty);
- if (StringUtils.isNull(objectMap)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行没有维护出库明细的仓储协议,操作终止");
- }
- Long feeId = (Long) objectMap.get("feeId");
- BigDecimal amt = (BigDecimal) objectMap.get("amt");
- TFees tFees = tFeesMapper.selectTFeesById(feeId);
- if (StringUtils.isNotNull(tFees)) {
- feesList.add(tFees);
- }
- TWarehousebillsfees fees = new TWarehousebillsfees();
- fees.setfPid(fPid);
- fees.setfFeeid(feeId);
- fees.setfCorpid(tWarehouseBills.getfCorpid());
- fees.setfFeeUnitid(fBillingway);
- fees.setfQty(new BigDecimal(1));
- fees.setfUnitprice(amt);
- fees.setfAmount(amt);
- fees.setfExrate(new BigDecimal(1));
- fees.setfCurrency("RMB");
- fees.setRemark(dateDay + "天" + tFees.getfName());
- warehousebillsfees.add(fees);
- }
- } else if ("CKDB".equals(billsType)) { // 调拨查询
- if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存为空");
- } else { // 非空修改库存总账
- if (tWhgenle.getfQtyblc() < wbItem.getfQty()) { // 1、 库存 < 调拨件数 提示库存不足
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存不足");
- } else { // 2、 库存足够 先 进行出库操作
- updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
- }
- // 3、 进行入库操作 查询是否存在库存
- tWarehouseBills.setfCorpid(tWarehouseBills.getfTocorpid()); // 新货权方
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehouseBills, wbItem);
- if (StringUtils.isNull(tWhgenle1)) { // 5、 不存在 进行新增库存
- instalTWhgenleg(tWarehouseBills, wbItem, loginUser.getUser());
- } else { // 4、 存在 进行跟新库存
- updateTWhgenlegData(wbItem, tWhgenle1.getfId(), "SJRK");
- }
- }
- } else if ("HQZY".equals(billsType)) { // 货转
- if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存为空");
- } else { // 非空修改库存总账
- if (tWhgenle.getfQtyblc() < wbItem.getfQty()) { // 1、 库存 < 调拨件数 提示库存不足
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存不足");
- } else { // 2、 库存足够 先 进行出库操作
- updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
- }
- // 3、 进行入库操作 查询是否存在库存
- tWarehouseBills.setfCorpid(tWarehouseBills.getfTocorpid()); // 新货权方
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehouseBills, wbItem);
- if (StringUtils.isNull(tWhgenle1)) { // 5、 不存在 进行新增库存
- instalTWhgenleg(tWarehouseBills, wbItem, loginUser.getUser());
- } else { // 4、 存在 进行跟新库存
- updateTWhgenlegData(wbItem, tWhgenle1.getfId(), "SJRK");
- }
- }
- }
- i++;
- wbItem.setfPid(fPid);
- wbItem.setfBillstatus("6");
- wbItem.setfBsdate(tWarehouseBills.getfBsdate());
- wbItem.setCreateBy(loginUser.getUser().getUserName());
- wbItem.setCreateTime(new Date());
- int num = 0;
- if (StringUtils.isNotNull(wbItem.getfId())) {
- num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(wbItem);
- } else {
- num = tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
- }
- if (num <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细更新失败");
- }
- }
- // 查询所有库存明细 修改仓库主表状态
- int notInStorage = 0;
- int Stored = 0;
- TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
- tWarehousebillsitems.setfPid(fPid);
- List<TWarehousebillsitems> warehousebillsitemsList1 = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
- for (TWarehousebillsitems item : warehousebillsitemsList1) {
- if (item.getfBillstatus() == null) {
- notInStorage++;
- } else if (item.getfBillstatus().equals("6")) {
- Stored++;
- } else if (item.getfBillstatus().equals("1")) {
- notInStorage++;
- }
- }
- // 录入库存明细整体状态
- TWarehouseBills warehouseBill = new TWarehouseBills();
- warehouseBill.setfId(fPid);
- if (Objects.equals(Stored, 0)) { // 未入库
- warehouseBill.setfItemsStatus("1");
- } else if (Objects.equals(notInStorage, 0)) { // 已入库
- warehouseBill.setfItemsStatus("6");
- } else { // 有已入库、有未入库
- warehouseBill.setfItemsStatus("2");
- }
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBill);
- map.put("fPid", fPid);
- map.put("fees", feesList);
- map.put("warehousebillsfees", warehousebillsfees);
- // 添加成功 主键返回 前台
- return AjaxResult.success("成功", map);
- }
- // 入库 收费明细 校验
- public Long check(BigDecimal number, BigDecimal unitPrice) {
- BigDecimal result1 = number.multiply(unitPrice);
- // 保留两位小数且四舍五入
- result1 = result1.setScale(2, BigDecimal.ROUND_HALF_UP);
- // 转换去掉小数点
- String result = result1.toString().replace(".", "");
- return Long.valueOf(result);
- }
- /**
- * 修改详情主表
- *
- * @param tWarehousebills 详情主表
- * @return 结果
- */
- @Override
- public int updateTWarehousebills(TWarehouseBills tWarehousebills) {
- tWarehousebills.setUpdateTime(DateUtils.getNowDate());
- return tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
- }
- /**
- * 批量删除详情主表
- *
- * @param fIds 需要删除的详情主表ID
- * @return 结果
- */
- @Override
- public int deleteTWarehousebillsByIds(Long[] fIds) {
- // 取出业务编号、 放入 billno_del
- for (Long id : fIds) {
- // 1、查询主表信息
- TWarehouseBills tWarehousebills = tWarehouseBillsMapper.selectTWarehousebillsById(id);
- // 2、业务编号、客存编号 放入 billno_del
- BillnoDel billnoDel = new BillnoDel();
- billnoDel.setBillType(tWarehousebills.getfBilltype());
- billnoDel.setBillNo(tWarehousebills.getfBillno());
- billnoDelMapper.insertBillnoDel(billnoDel);
- }
- return tWarehouseBillsMapper.deleteTWarehousebillsByIds(fIds);
- }
- /**
- * 删除详情主表信息
- *
- * @param fId 详情主表ID
- * @return 结果
- */
- @Override
- public int deleteTWarehousebillsById(Long fId) {
- return tWarehouseBillsMapper.deleteTWarehousebillsById(fId);
- }
- @Override
- public String getWarehouseInStockBillsNo(TWarehouseBills tWarehouseBills) {
- return null;
- }
- @Override
- public String getWarehouseOutStockBillsNo(TWarehouseBills tWarehouseBills) {
- return null;
- }
- @Override
- public AjaxResult revokeTWarehousebillsById(Long fId, LoginUser loginUser, String billsType) {
- // 查询 仓库主表信息、库存明细信息
- TWarehouseBills tWarehousebills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
- // 修改主表信息
- tWarehousebills.setUpdateBy(loginUser.getUser().getUserName());
- tWarehousebills.setUpdateTime(new Date());
- tWarehousebills.setfBillstatus("3"); //撤销状态
- tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
- // 查询库存明细从表数据
- TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
- tWarehousebillsitems.setfPid(fId);
- List<TWarehousebillsitems> warehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
- // 撤销 库存总账
- if (StringUtils.isNotEmpty(warehousebillsitems)) {
- int i = 1;
- for (TWarehousebillsitems wb : warehousebillsitems) {
- // 查询库存总账
- TWhgenleg tWhgenle = queryTWhgenleg(tWarehousebills, wb);
- if ("SJRKRevoke".equals(billsType)) { // 撤销 入库
- if (StringUtils.isNotNull(tWhgenle) && (wb.getfQty() <= tWhgenle.getfQtyblc())) { // 非空 且 撤销数 <= 结余数
- updateTWhgenlegData(wb, tWhgenle.getfId(), billsType);
- } else { // 撤销数>结余数
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
- }
- } else if ("SJCKRevoke".equals(billsType)) { // 撤销出库
- if (StringUtils.isNotNull(tWhgenle)) { // 非空
- updateTWhgenlegData(wb, tWhgenle.getfId(), billsType);
- } else {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("第" + i + "行未查询到库存信息");
- }
- } else if ("CKDBRevoke".equals(billsType)) { // 调拨 撤销
- Long fCorpid = tWarehousebills.getfCorpid();// 原货权方
- Long fTocorpid = tWarehousebills.getfTocorpid(); // 新货权方
- // 1、新货权方撤销入库
- // 查询库存总账
- tWarehousebills.setfCorpid(fTocorpid);
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb);
- if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
- updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
- } else {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
- }
- // 2、原货权方撤销出库
- // 查询库存总账
- tWarehousebills.setfCorpid(fCorpid);
- TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb);
- updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
- } else if ("HQZYRevoke".equals(billsType)) { // 货转撤销 HQZYRevoke
- Long fCorpid = tWarehousebills.getfCorpid();// 原货权方
- Long fTocorpid = tWarehousebills.getfTocorpid(); // 新货权方
- // 1、新货权方撤销入库
- // 查询库存总账
- tWarehousebills.setfCorpid(fTocorpid);
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb);
- if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
- updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
- } else {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
- }
- // 2、原货权方撤销出库
- // 查询库存总账
- tWarehousebills.setfCorpid(fCorpid);
- TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb);
- updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
- }
- i++;
- }
- }
- return AjaxResult.success();
- }
- /**
- * 撤销入账
- *
- * @param warehouseBills 主表
- * @param warehousebillsitems 明细
- * @param loginUser 当前登录人
- * @param billsType 状态
- * @return 结果
- */
- @Override
- @Transactional
- public AjaxResult revokeTWarehousebillsById1(String warehouseBills, String warehousebillsitems, LoginUser loginUser, String billsType) {
- Long fPid = null;
- if (StringUtils.isNull(warehouseBills) || "[]".equals(warehouseBills)) {
- return AjaxResult.error("未找到主表信息");
- }
- if (StringUtils.isNull(warehousebillsitems) || "[]".equals(warehousebillsitems)) {
- return AjaxResult.error("未找到入账信息");
- }
- TWarehouseBills tWarehousebills = JSONArray.parseObject(warehouseBills, TWarehouseBills.class);
- fPid = tWarehousebills.getfId();
- JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
- List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
- if (StringUtils.isNotEmpty(warehousebillsitemsList)) {
- int i = 1;
- for (TWarehousebillsitems wb : warehousebillsitemsList) {
- // 查询库存总账
- TWhgenleg tWhgenle = queryTWhgenleg(tWarehousebills, wb);
- if ("SJRKRevoke".equals(billsType)) { // 撤销 入库
- if (StringUtils.isNotNull(tWhgenle) && (wb.getfQty() <= tWhgenle.getfQtyblc())) { // 非空 且 撤销数 <= 结余数
- updateTWhgenlegData(wb, tWhgenle.getfId(), billsType);
- } else { // 撤销数>结余数
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
- }
- } else if ("SJCKRevoke".equals(billsType)) { // 撤销出库
- if (StringUtils.isNotNull(tWhgenle)) { // 非空
- updateTWhgenlegData(wb, tWhgenle.getfId(), billsType);
- } else {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("第" + i + "行未查询到库存信息");
- }
- } else if ("CKDBRevoke".equals(billsType)) { // 调拨 撤销
- Long fCorpid = tWarehousebills.getfCorpid();// 原货权方
- Long fTocorpid = tWarehousebills.getfTocorpid(); // 新货权方
- // 1、新货权方撤销入库
- // 查询库存总账
- tWarehousebills.setfCorpid(fTocorpid);
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb);
- if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
- updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
- } else {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
- }
- // 2、原货权方撤销出库
- // 查询库存总账
- tWarehousebills.setfCorpid(fCorpid);
- TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb);
- updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
- } else if ("HQZYRevoke".equals(billsType)) { // 货转撤销 HQZYRevoke
- Long fCorpid = tWarehousebills.getfCorpid();// 原货权方
- Long fTocorpid = tWarehousebills.getfTocorpid(); // 新货权方
- // 1、新货权方撤销入库
- // 查询库存总账
- tWarehousebills.setfCorpid(fTocorpid);
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb);
- if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
- updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
- } else {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
- }
- // 2、原货权方撤销出库
- // 查询库存总账
- tWarehousebills.setfCorpid(fCorpid);
- TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb);
- updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
- }
- i++;
- wb.setfBillstatus("1");
- wb.setUpdateBy(loginUser.getUser().getUserName());
- wb.setUpdateTime(new Date());
- if (tWarehousebillsitemsMapper.updateTWarehousebillsitems(wb) <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("新增库存明细失败");
- }
- }
- }
- // 查询所有库存明细 修改仓库主表状态
- int notInStorage = 0;
- int Stored = 0;
- TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
- tWarehousebillsitems.setfPid(fPid);
- List<TWarehousebillsitems> warehousebillsitemsList1 = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
- for (TWarehousebillsitems item : warehousebillsitemsList1) {
- if (item.getfBillstatus() == null) {
- notInStorage++;
- } else if (item.getfBillstatus().equals("6")) {
- Stored++;
- } else if (item.getfBillstatus().equals("1")) {
- notInStorage++;
- }
- }
- // 录入库存明细整体状态
- TWarehouseBills warehouseBill = new TWarehouseBills();
- warehouseBill.setfId(fPid);
- if (Objects.equals(Stored, 0)) { // 未入库
- warehouseBill.setfItemsStatus("1");
- } else if (Objects.equals(notInStorage, 0)) { // 已入库
- warehouseBill.setfItemsStatus("6");
- } else { // 有已入库、有未入库
- warehouseBill.setfItemsStatus("2");
- }
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBill);
- return AjaxResult.success();
- }
- }
|