|
|
@ -18,6 +18,7 @@ import com.yxt.warehouse.biz.purchaseinventorybilldetail.PurchaseInventoryBillDe |
|
|
|
import com.yxt.warehouse.biz.purchaseinventorybilldetail.PurchaseInventoryBillDetailVo; |
|
|
|
import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBill; |
|
|
|
import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBillService; |
|
|
|
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetail; |
|
|
|
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetailService; |
|
|
|
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsListDetailsVo; |
|
|
|
import com.yxt.warehouse.biz.warehousereceiptbilldetail.WarehouseReceiptBillDetailDto2; |
|
|
@ -27,8 +28,10 @@ import com.yxt.warehouse.biz.warehousereceiptbilldetail.WarehouseReceiptBillDeta |
|
|
|
import com.yxt.warehouse.biz.warehousereceiptbilldetailbatch.WarehouseReceiptBillDetailBatchDto2; |
|
|
|
import com.yxt.warehouse.biz.warehousereceiptbilldetailbatch.WarehouseReceiptBillDetailBatchMapper; |
|
|
|
import com.yxt.warehouse.biz.warehousereceiptbilldetailbatch.WarehouseReceiptBillDetailBatchService; |
|
|
|
import com.yxt.warehouse.utils.Rule; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
@ -48,11 +51,16 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv |
|
|
|
@Autowired |
|
|
|
private WarehouseAnsBillDetailService wmsAnsBillDetailService; |
|
|
|
@Autowired |
|
|
|
OperationRecordService operationRecordService;; |
|
|
|
OperationRecordService operationRecordService; |
|
|
|
; |
|
|
|
@Autowired |
|
|
|
private WarehouseReceiptBillDetailMapper wmsReceiptBillDetailMapper; |
|
|
|
@Autowired |
|
|
|
private WarehouseReceiptBillDetailBatchMapper wmsReceiptBillDetailBatchMapper; |
|
|
|
@Autowired |
|
|
|
WarehouseAnsBillDetailService warehouseAnsBillDetailService; |
|
|
|
@Autowired |
|
|
|
WarehouseAnsBillService warehouseAnsBillService; |
|
|
|
|
|
|
|
public PagerVo<PurchaseInventoryBillPageVo> listPage(PagerQuery<PurchaseInventoryBillQuery> pq) { |
|
|
|
PurchaseInventoryBillQuery query = pq.getParams(); |
|
|
@ -96,6 +104,53 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv |
|
|
|
return p; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<String> saveBill(List<PurchaseInventoryBillDto2> dto,String userSid,String userName) { |
|
|
|
ResultBean<String> rb = ResultBean.fireFail(); |
|
|
|
for (PurchaseInventoryBillDto2 dto2 : dto) { |
|
|
|
double c=0; |
|
|
|
double total=0; |
|
|
|
for (PurchaseInventoryBillDetailDto2 purchaseInventoryBillDetailDto2 : dto2.getList()) { |
|
|
|
c=c+purchaseInventoryBillDetailDto2.getCount(); |
|
|
|
total=total+purchaseInventoryBillDetailDto2.getTotalPrice(); |
|
|
|
} |
|
|
|
PurchaseInventoryBill wmsReceiptBill = new PurchaseInventoryBill(); |
|
|
|
String sid = wmsReceiptBill.getSid(); |
|
|
|
BeanUtil.copyProperties(dto2, wmsReceiptBill, "sid"); |
|
|
|
wmsReceiptBill.setBillState("1"); |
|
|
|
wmsReceiptBill.setTotal(total); |
|
|
|
//生成单据编号
|
|
|
|
String billNo = ""; |
|
|
|
String date = DateUtil.format(DateUtil.date(), "yyyyMMdd"); |
|
|
|
billNo = "RK" + date; |
|
|
|
String i = baseMapper.selectNum(billNo); |
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(i)) { |
|
|
|
billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); |
|
|
|
} else { |
|
|
|
billNo = Rule.getBillNo(billNo, 0); |
|
|
|
} |
|
|
|
wmsReceiptBill.setBillNo(billNo); |
|
|
|
wmsReceiptBill.setTotalQuantity(c); |
|
|
|
baseMapper.insert(wmsReceiptBill); |
|
|
|
List<PurchaseInventoryBillDetailDto2> list = dto2.getList(); |
|
|
|
list.removeAll(Collections.singleton(null)); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
rb = purchaseInventoryBillDetailService.saveOrUpdateDetailsList2(sid, list); |
|
|
|
if (!rb.getCode().equals("200")) { |
|
|
|
return rb; |
|
|
|
} |
|
|
|
} |
|
|
|
OperationRecordDto dto1 = new OperationRecordDto(); |
|
|
|
dto1.setBillSid(sid); |
|
|
|
dto1.setUserSid(userSid); |
|
|
|
dto1.setUserName(userName); |
|
|
|
dto1.setCreateTime(new Date()); |
|
|
|
dto1.setContent("生成入库单"); |
|
|
|
operationRecordService.save(dto1); |
|
|
|
} |
|
|
|
|
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<String> saveOrUpdateBill2(PurchaseInventoryBillDto2 dto) { |
|
|
|
ResultBean<String> rb = ResultBean.fireFail(); |
|
|
|
String sid = dto.getSid(); |
|
|
@ -105,13 +160,13 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv |
|
|
|
BeanUtil.copyProperties(dto, wmsReceiptBill, "sid"); |
|
|
|
List<PurchaseInventoryBillDetailDto2> list = dto.getList(); |
|
|
|
list.removeAll(Collections.singleton(null)); |
|
|
|
// List<WarehouseReceiptBillDetailBatchDto2> pcList = dto.getPcList();
|
|
|
|
// pcList.removeAll(Collections.singleton(null));
|
|
|
|
if (!list.isEmpty()) { |
|
|
|
// purchaseInventoryBillDetailService.saveOrUpdateDetailsList2(sid, list, pcList);
|
|
|
|
purchaseInventoryBillDetailService.saveOrUpdateDetailsList2(sid, list); |
|
|
|
rb = purchaseInventoryBillDetailService.saveOrUpdateDetailsList2(sid, list); |
|
|
|
if (!rb.getCode().equals("200")) { |
|
|
|
return rb; |
|
|
|
} |
|
|
|
} |
|
|
|
OperationRecordDto dto1=new OperationRecordDto(); |
|
|
|
OperationRecordDto dto1 = new OperationRecordDto(); |
|
|
|
dto1.setBillSid(sid); |
|
|
|
dto1.setUserSid(dto.getUserSid()); |
|
|
|
dto1.setCreateTime(new Date()); |
|
|
@ -127,10 +182,7 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv |
|
|
|
BeanUtil.copyProperties(dto, wmsReceiptBill, "sid"); |
|
|
|
List<PurchaseInventoryBillDetailDto2> list = dto.getList(); |
|
|
|
list.removeAll(Collections.singleton(null)); |
|
|
|
// List<WarehouseReceiptBillDetailBatchDto2> pcList = dto.getPcList();
|
|
|
|
// pcList.removeAll(Collections.singleton(null));
|
|
|
|
if (!list.isEmpty()) { |
|
|
|
// purchaseInventoryBillDetailService.saveOrUpdateDetailsList2(sid, list, pcList);
|
|
|
|
purchaseInventoryBillDetailService.saveOrUpdateDetailsList2(sid, list); |
|
|
|
} |
|
|
|
baseMapper.updateById(wmsReceiptBill); |
|
|
@ -138,27 +190,7 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv |
|
|
|
return rb.success().setData(sid); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<PurchaseInventoryBillVo> getInitDetails(String sourceSid) { |
|
|
|
ResultBean<PurchaseInventoryBillVo> rb = ResultBean.fireFail(); |
|
|
|
PurchaseInventoryBillVo wmsReceiptBillVo = new PurchaseInventoryBillVo(); |
|
|
|
WarehouseAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(sourceSid); |
|
|
|
BeanUtil.copyProperties(wmsAnsBill, wmsReceiptBillVo, "sid"); |
|
|
|
wmsReceiptBillVo.setSourceBillNo(wmsAnsBill.getBillNo()); |
|
|
|
wmsReceiptBillVo.setSourceBillSid(wmsAnsBill.getSid()); |
|
|
|
// wmsReceiptBillVo.setCreateTime(DateUtil.today());
|
|
|
|
List<WarehouseAnsListDetailsVo> list = wmsAnsBillDetailService.selectByBillSid(sourceSid); |
|
|
|
list.removeAll(Collections.singleton(null)); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
List<WarehouseReceiptBillDetailVo> lists = Optional.ofNullable(list).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), WarehouseReceiptBillDetailVo.class)).collect(Collectors.toList()); |
|
|
|
for (WarehouseReceiptBillDetailVo warehouseReceiptBillDetailVo : lists) { |
|
|
|
warehouseReceiptBillDetailVo.setIsQuality(0); |
|
|
|
warehouseReceiptBillDetailVo.setQualityState(0); |
|
|
|
} |
|
|
|
wmsReceiptBillVo.setList(lists); |
|
|
|
} |
|
|
|
|
|
|
|
return rb.success().setData(wmsReceiptBillVo); |
|
|
|
} |
|
|
|
public ResultBean<PurchaseInventoryBillInitVo> selectByBillSid(String sid) { |
|
|
|
ResultBean<PurchaseInventoryBillInitVo> rb = ResultBean.fireFail(); |
|
|
|
PurchaseInventoryBillInitVo wmsReceiptBillInitVo = baseMapper.getDetailsInit(sid); |
|
|
@ -166,58 +198,41 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv |
|
|
|
List<PurchaseInventoryBillDetailVo> list = purchaseInventoryBillDetailService.getDetailsInit(sid); |
|
|
|
list.removeAll(Collections.singleton(null)); |
|
|
|
wmsReceiptBillInitVo.setList(list); |
|
|
|
// wmsReceiptBillInitVo.setPcList(pcList);
|
|
|
|
} else { |
|
|
|
return rb.setMsg("该单据不存在"); |
|
|
|
} |
|
|
|
return rb.success().setData(wmsReceiptBillInitVo); |
|
|
|
} |
|
|
|
// public ResultBean<PurchaseInventoryBillInitVo> getDetailsInit(String sid) {
|
|
|
|
// ResultBean<PurchaseInventoryBillInitVo> rb = ResultBean.fireFail();
|
|
|
|
// PurchaseInventoryBillInitVo wmsReceiptBillInitVo = baseMapper.getDetailsInit(sid);
|
|
|
|
// List<WarehouseReceiptBillDetailBatchDto2> pcList = new ArrayList<>();
|
|
|
|
// if (wmsReceiptBillInitVo != null) {
|
|
|
|
// List<PurchaseInventoryBillDetailVo> list = purchaseInventoryBillDetailService.getDetailsInit(sid);
|
|
|
|
// list.removeAll(Collections.singleton(null));
|
|
|
|
// if (!list.isEmpty()) {
|
|
|
|
// for (int i = 0; i < list.size(); i++) {
|
|
|
|
// PurchaseInventoryBillDetailVo purchaseInventoryBillDetailDto2 = list.get(i);
|
|
|
|
// int a = i + 1;
|
|
|
|
//// purchaseInventoryBillDetailDto2.setXh(String.valueOf(a));
|
|
|
|
// List<WarehouseReceiptBillDetailBatchDto2> pcList2 = wmsReceiptBillDetailBatchService.getDetailsInit(sid, purchaseInventoryBillDetailDto2.getDetailsSid());
|
|
|
|
// pcList2.removeAll(Collections.singleton(null));
|
|
|
|
// if (!pcList2.isEmpty()) {
|
|
|
|
// for (int j = 0; j < pcList2.size(); j++) {
|
|
|
|
// WarehouseReceiptBillDetailBatchDto2 wmsReceiptBillDetailBatchDto2 = pcList2.get(j);
|
|
|
|
// wmsReceiptBillDetailBatchDto2.setXh(String.valueOf(a));
|
|
|
|
// }
|
|
|
|
// pcList.addAll(pcList2);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//// wmsReceiptBillInitVo.setList(list);
|
|
|
|
//// wmsReceiptBillInitVo.setPcList(pcList);
|
|
|
|
// } else {
|
|
|
|
// return rb.setMsg("该单据不存在");
|
|
|
|
// }
|
|
|
|
// return rb.success().setData(wmsReceiptBillInitVo);
|
|
|
|
// }
|
|
|
|
|
|
|
|
// @Transactional
|
|
|
|
public ResultBean<String> confirm(PurchaseInventoryBillDto2 dto) { |
|
|
|
ResultBean<String> rb = ResultBean.fireFail(); |
|
|
|
// dto.setBillState("1");
|
|
|
|
List<PurchaseInventoryBillDetailDto2> list = dto.getList(); |
|
|
|
list.removeAll(Collections.singleton(null)); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
for (int i = 0; i < list.size(); i++) { |
|
|
|
PurchaseInventoryBillDetailDto2 wmsReceiptBillDetailDto2 = list.get(i); |
|
|
|
// wmsReceiptBillDetailDto2.setState(1);
|
|
|
|
} |
|
|
|
Map<String, List<PurchaseInventoryBillDetailDto2>> groupingMap=dto.getList().stream().collect(Collectors.groupingBy(PurchaseInventoryBillDetailDto2::getSourceBillSid)); |
|
|
|
List<PurchaseInventoryBillDto2> dto2s=new ArrayList<>(); |
|
|
|
for (String a:groupingMap.keySet()){ |
|
|
|
PurchaseInventoryBillDto2 dto2=new PurchaseInventoryBillDto2(); |
|
|
|
List<PurchaseInventoryBillDetailDto2> s=groupingMap.get(a); |
|
|
|
String sourceBillSid=groupingMap.get(a).get(0).getSourceBillSid(); |
|
|
|
WarehouseAnsBill warehouseAnsBill=warehouseAnsBillService.getOne(new QueryWrapper<WarehouseAnsBill>().eq("sid",sourceBillSid)); |
|
|
|
warehouseAnsBillDetailService.list(new QueryWrapper<WarehouseAnsBillDetail>().eq("sourceBillSid",sourceBillSid)); |
|
|
|
BeanUtil.copyProperties(warehouseAnsBill,dto2); |
|
|
|
dto2.setSourceBillSid(warehouseAnsBill.getSid()); |
|
|
|
dto2.setSourceBillNo(warehouseAnsBill.getBillNo()); |
|
|
|
dto2.setExternalNo(warehouseAnsBill.getSourceBillNo()); |
|
|
|
dto2.setOperatorSid(dto.getUserSid()); |
|
|
|
dto2.setOperatorName(dto.getUserName()); |
|
|
|
dto2.setOperatorTime(new Date()); |
|
|
|
dto2.setList(groupingMap.get(a)); |
|
|
|
dto2.setStorageTime(dto.getStorageTime()); |
|
|
|
dto2.setWarehouseName(s.get(0).getWarehouseName()); |
|
|
|
dto2.setWarehouseSid(s.get(0).getWarehouseSid()); |
|
|
|
dto2s.add(dto2); |
|
|
|
} |
|
|
|
dto.setList(list); |
|
|
|
ResultBean<String> resultBean = saveOrUpdateBill2(dto); |
|
|
|
String sid = resultBean.getData(); |
|
|
|
return rb.success().setData(sid); |
|
|
|
rb=saveBill(dto2s,dto.getUserSid(),dto.getUserName()); |
|
|
|
if (!rb.getCode().equals("200")) { |
|
|
|
return rb; |
|
|
|
} |
|
|
|
return rb.success().setMsg("保存成功"); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean delAllBySids(String[] sids) { |
|
|
|