|  | @@ -6,12 +6,16 @@ import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  |  import com.ruoyi.approvalFlow.domain.AuditItems;
 | 
	
		
			
				|  |  |  import com.ruoyi.approvalFlow.mapper.AuditItemsMapper;
 | 
	
		
			
				|  |  |  import com.ruoyi.approvalFlow.service.impl.AuditItemsServiceImpl;
 | 
	
		
			
				|  |  | -import com.ruoyi.basicData.domain.*;
 | 
	
		
			
				|  |  | +import com.ruoyi.basicData.domain.TCorps;
 | 
	
		
			
				|  |  | +import com.ruoyi.basicData.domain.TFees;
 | 
	
		
			
				|  |  | +import com.ruoyi.basicData.domain.TGoods;
 | 
	
		
			
				|  |  | +import com.ruoyi.basicData.domain.TWarehouseArea;
 | 
	
		
			
				|  |  |  import com.ruoyi.basicData.mapper.*;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.core.domain.AjaxResult;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.core.domain.entity.SysDept;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.core.domain.entity.SysDictData;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.core.domain.entity.SysUser;
 | 
	
		
			
				|  |  | +import com.ruoyi.common.core.domain.entity.TWarehouse;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.core.domain.model.LoginUser;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.utils.DateUtils;
 | 
	
		
			
				|  |  |  import com.ruoyi.common.utils.StringUtils;
 | 
	
	
		
			
				|  | @@ -30,10 +34,10 @@ 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 com.ruoyi.common.core.domain.entity.TWarehouse;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import java.math.BigDecimal;
 | 
	
		
			
				|  |  |  import java.util.*;
 | 
	
		
			
				|  |  | +import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import static java.util.stream.Collectors.toList;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -449,21 +453,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |              JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
 | 
	
		
			
				|  |  |              List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
 | 
	
		
			
				|  |  |              for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
 | 
	
		
			
				|  |  | -                /*if(StringUtils.isNull(wbItem.getfSerialNumber())){
 | 
	
		
			
				|  |  | -                    // 生成流水号
 | 
	
		
			
				|  |  | -                    Date time = new Date();
 | 
	
		
			
				|  |  | -                    String serialNumber;
 | 
	
		
			
				|  |  | -                    if ("SJRK".equals(billsType)) { // 生成 入库 流水号
 | 
	
		
			
				|  |  | -                        serialNumber = billnoSerialServiceImpl.getSerialNumber("RK", time);
 | 
	
		
			
				|  |  | -                        wbItem.setfSerialNumber(serialNumber);
 | 
	
		
			
				|  |  | -                    } else if ("SJCK".equals(billsType)) { //生成 出库 流水号
 | 
	
		
			
				|  |  | -                        serialNumber = billnoSerialServiceImpl.getSerialNumber("CK", time);
 | 
	
		
			
				|  |  | -                        wbItem.setfSerialNumber(serialNumber);
 | 
	
		
			
				|  |  | -                    } else if ("CKDB".equals(billsType)) { //生成 出库 流水号
 | 
	
		
			
				|  |  | -                        serialNumber = billnoSerialServiceImpl.getSerialNumber("DB", time);
 | 
	
		
			
				|  |  | -                        wbItem.setfSerialNumber(serialNumber);
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                }*/
 | 
	
		
			
				|  |  |                  boolean warehouseStatus = "SJRK".equals(billsType) || "SJCK".equals(billsType) || "CKDB".equals(billsType);
 | 
	
		
			
				|  |  |                  // 仓储计费日期
 | 
	
		
			
				|  |  |                  wbItem.setfBilltype(billsType);
 | 
	
	
		
			
				|  | @@ -1256,6 +1245,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                                        String tEnclosure, String tWarehousebillsfeesCr, String tWarehousebillsfeesDr,
 | 
	
		
			
				|  |  |                                        LoginUser loginUser, Long status, String billtystatus) {
 | 
	
		
			
				|  |  |          Map<String, Object> map = new HashMap<>();
 | 
	
		
			
				|  |  | +        List<TWarehousebillsitems> mapList= new ArrayList<>();
 | 
	
		
			
				|  |  |          if (StringUtils.isNull(warehouseBills) || "[]".equals(warehouseBills)) {
 | 
	
		
			
				|  |  |              return AjaxResult.error("未找到主表信息");
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -1277,31 +1267,22 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |          tWarehousebillsfeesMapper.deleteByFPid(tWarehouseBills.getfId());
 | 
	
		
			
				|  |  |          JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
 | 
	
		
			
				|  |  |          List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
 | 
	
		
			
				|  |  | +        /**
 | 
	
		
			
				|  |  | +         * 1、 查询回收表是否有可用数据
 | 
	
		
			
				|  |  | +         * 2、 流水号生成 --> 打印一次 只记录一个号
 | 
	
		
			
				|  |  | +         */
 | 
	
		
			
				|  |  | +        Date time = new Date();
 | 
	
		
			
				|  |  | +        String serialNumber = null;
 | 
	
		
			
				|  |  | +        if ("RK".equals(billtystatus)) {
 | 
	
		
			
				|  |  | +            serialNumber = billnoSerialServiceImpl.getSerialNumber("RK", time);
 | 
	
		
			
				|  |  | +        } else if ("CK".equals(billtystatus)) { //生成 出库 流水号
 | 
	
		
			
				|  |  | +            serialNumber = billnoSerialServiceImpl.getSerialNumber("CK", time);
 | 
	
		
			
				|  |  | +        } else if ("DB".equals(billtystatus)) { //生成 出库 流水号
 | 
	
		
			
				|  |  | +            serialNumber = billnoSerialServiceImpl.getSerialNumber("DB", time);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          for (TWarehousebillsitems item : warehousebillsitemsList) {
 | 
	
		
			
				|  |  | -            // 生成流水号
 | 
	
		
			
				|  |  | -            Date time = new Date();
 | 
	
		
			
				|  |  | -            String serialNumber;
 | 
	
		
			
				|  |  |              if (item.getfBillstatus() < 30L) {
 | 
	
		
			
				|  |  | -                if(StringUtils.isNull(item.getfSerialNumber())){
 | 
	
		
			
				|  |  | -                    if ("RK".equals(billtystatus)) { // 生成 入库 流水号
 | 
	
		
			
				|  |  | -                        serialNumber = billnoSerialServiceImpl.getSerialNumber("RK", time);
 | 
	
		
			
				|  |  | -                        item.setfSerialNumber(serialNumber);
 | 
	
		
			
				|  |  | -                    } else if ("CK".equals(billtystatus)) { //生成 出库 流水号
 | 
	
		
			
				|  |  | -                        serialNumber = billnoSerialServiceImpl.getSerialNumber("CK", time);
 | 
	
		
			
				|  |  | -                        item.setfSerialNumber(serialNumber);
 | 
	
		
			
				|  |  | -                    } else if ("DB".equals(billtystatus)) { //生成 出库 流水号
 | 
	
		
			
				|  |  | -                        serialNumber = billnoSerialServiceImpl.getSerialNumber("DB", time);
 | 
	
		
			
				|  |  | -                        item.setfSerialNumber(serialNumber);
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                if ("RK".equals(billtystatus)) { // 生成 入库 流水号
 | 
	
		
			
				|  |  | -                    serialNumber = billnoSerialServiceImpl.getSerialNumber("RK", time);
 | 
	
		
			
				|  |  | -                    item.setfSerialNumber(serialNumber);
 | 
	
		
			
				|  |  | -                } else if ("CK".equals(billtystatus)) { //生成 出库 流水号
 | 
	
		
			
				|  |  | -                    serialNumber = billnoSerialServiceImpl.getSerialNumber("CK", time);
 | 
	
		
			
				|  |  | -                    item.setfSerialNumber(serialNumber);
 | 
	
		
			
				|  |  | -                } else if ("DB".equals(billtystatus)) { //生成 出库 流水号
 | 
	
		
			
				|  |  | -                    serialNumber = billnoSerialServiceImpl.getSerialNumber("DB", time);
 | 
	
		
			
				|  |  | +                if(item.getfSerialNumber()==null ||  item.getfSerialNumber().equals("")){
 | 
	
		
			
				|  |  |                      item.setfSerialNumber(serialNumber);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  item.setfBillstatus(status);
 | 
	
	
		
			
				|  | @@ -1315,6 +1296,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                      return AjaxResult.error("更新库存明细失败");
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +            mapList.add(item);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          //  附件添加
 | 
	
		
			
				|  |  |          if (StringUtils.isNotEmpty(tEnclosure) && !"[]".equals(tEnclosure)) {
 | 
	
	
		
			
				|  | @@ -1360,8 +1342,9 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |          // 添加成功 返回 前台
 | 
	
		
			
				|  |  |          TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
 | 
	
		
			
				|  |  |          tWarehousebillsitems.setfPid(tWarehouseBills.getfId());
 | 
	
		
			
				|  |  | -        List<TWarehousebillsitems> mapList = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
 | 
	
		
			
				|  |  | +        List<TWarehousebillsitems> mapList1 = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
 | 
	
		
			
				|  |  |          map.put("warehousebillsitems", mapList);
 | 
	
		
			
				|  |  | +        map.put("warehousebillsitems1", mapList1);
 | 
	
		
			
				|  |  |          return AjaxResult.success("成功", map);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1930,9 +1913,15 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |          tWarehousebillsfeesMapper.deleteByFPid(tWarehousebills.getfId());
 | 
	
		
			
				|  |  |          JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
 | 
	
		
			
				|  |  |          List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
 | 
	
		
			
				|  |  | +        /**
 | 
	
		
			
				|  |  | +         * 流水号回收
 | 
	
		
			
				|  |  | +         *  1、 获取所有流水号
 | 
	
		
			
				|  |  | +         */
 | 
	
		
			
				|  |  | +        List<String> SerialNumberList= new ArrayList<>();
 | 
	
		
			
				|  |  |          if (StringUtils.isNotEmpty(warehousebillsitemsList)) {
 | 
	
		
			
				|  |  |              int i = 1;
 | 
	
		
			
				|  |  |              for (TWarehousebillsitems wb : warehousebillsitemsList) {
 | 
	
		
			
				|  |  | +                SerialNumberList.add(wb.getfSerialNumber()); // 流水号回收
 | 
	
		
			
				|  |  |                  // 查询库存总账
 | 
	
		
			
				|  |  |                  TWhgenleg tWhgenle = queryTWhgenleg(tWarehousebills, wb);
 | 
	
		
			
				|  |  |                  if ("SJRKRevoke".equals(billsType)) { // 撤销 入库
 | 
	
	
		
			
				|  | @@ -1995,12 +1984,26 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |                  i++;
 | 
	
		
			
				|  |  |                  wb.setUpdateBy(loginUser.getUser().getUserName());
 | 
	
		
			
				|  |  |                  wb.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | +                wb.setfSerialNumber(null);
 | 
	
		
			
				|  |  |                  if (tWarehousebillsitemsMapper.updateTWarehousebillsitems(wb) <= 0) {
 | 
	
		
			
				|  |  |                      TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 | 
	
		
			
				|  |  |                      return AjaxResult.error("新增库存明细失败");
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        /**
 | 
	
		
			
				|  |  | +         * 流水号回收
 | 
	
		
			
				|  |  | +         *  2、 流水号去重
 | 
	
		
			
				|  |  | +         *  3、 添加到 billno_del
 | 
	
		
			
				|  |  | +         */
 | 
	
		
			
				|  |  | +        List<String> serialNumberNewList =delRepeat(SerialNumberList);
 | 
	
		
			
				|  |  | +        serialNumberNewList.forEach(item -> {
 | 
	
		
			
				|  |  | +                BillnoDel billnoDel = new BillnoDel();
 | 
	
		
			
				|  |  | +                billnoDel.setBillType(item.substring(0,2));
 | 
	
		
			
				|  |  | +                billnoDel.setBillNo(item);
 | 
	
		
			
				|  |  | +                billnoDelMapper.insertBillnoDel(billnoDel);
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          //  附件添加
 | 
	
		
			
				|  |  |          if (StringUtils.isNotEmpty(tEnclosure) && !"[]".equals(tEnclosure)) {
 | 
	
		
			
				|  |  |              JSONArray jsonDrArray = JSONArray.parseArray(tEnclosure);
 | 
	
	
		
			
				|  | @@ -2045,6 +2048,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 | 
	
		
			
				|  |  |          return AjaxResult.success();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public static List<String> delRepeat(List<String> list) {
 | 
	
		
			
				|  |  | +        List<String> myList = list.stream().distinct().collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        return myList ;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 添加 库存明细状态
 | 
	
		
			
				|  |  |       *
 |