|
|
@ -13,6 +13,7 @@ import com.yxt.common.core.result.ResultBean; |
|
|
|
import com.yxt.common.core.vo.PagerVo; |
|
|
|
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBill; |
|
|
|
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBillService; |
|
|
|
import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetail; |
|
|
|
import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetailService; |
|
|
|
import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsListDetailsVo; |
|
|
|
import com.yxt.wms.biz.inventory.wmsreceiptbilldetail.*; |
|
|
@ -20,9 +21,14 @@ import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailB |
|
|
|
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchDto2; |
|
|
|
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchMapper; |
|
|
|
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchService; |
|
|
|
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationFeign; |
|
|
|
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationVo; |
|
|
|
import com.yxt.wms.utils.BillNo; |
|
|
|
import com.yxt.wms.utils.Rule; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
@ -46,6 +52,8 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp |
|
|
|
private WmsReceiptBillDetailMapper wmsReceiptBillDetailMapper; |
|
|
|
@Autowired |
|
|
|
private WmsReceiptBillDetailBatchMapper wmsReceiptBillDetailBatchMapper; |
|
|
|
@Autowired |
|
|
|
private SysOrganizationFeign sysOrganizationFeign; |
|
|
|
|
|
|
|
public PagerVo<WmsReceiptBillPageVo> listPage(PagerQuery<WmsReceiptBillQuery> pq) { |
|
|
|
WmsReceiptBillQuery query = pq.getParams(); |
|
|
@ -106,6 +114,23 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp |
|
|
|
return rb.success().setData(sid); |
|
|
|
} |
|
|
|
|
|
|
|
private String getApplyCode(String createOrgSid) { |
|
|
|
ResultBean<SysOrganizationVo> resultBean1 = sysOrganizationFeign.fetchBySid(createOrgSid); |
|
|
|
String orgCode = resultBean1.getData().getOrgCode(); |
|
|
|
BillNo b = new BillNo(); |
|
|
|
b.setOrgCode(orgCode); |
|
|
|
b.setBillType("SHD"); |
|
|
|
String bill = Rule.getBill(b); |
|
|
|
String i = baseMapper.selectNum(bill); |
|
|
|
String billNo = ""; |
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(i)) { |
|
|
|
billNo = Rule.getBillNo(bill, Integer.valueOf(i).intValue()); |
|
|
|
} else { |
|
|
|
billNo = Rule.getBillNo(bill, 0); |
|
|
|
} |
|
|
|
return billNo; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<String> saveOrUpdateBill2(WmsReceiptBillDto2 dto) { |
|
|
|
ResultBean<String> rb = ResultBean.fireFail(); |
|
|
|
String sid = dto.getSid(); |
|
|
@ -118,13 +143,57 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp |
|
|
|
List<WmsReceiptBillDetailBatchDto2> pcList = dto.getPcList(); |
|
|
|
pcList.removeAll(Collections.singleton(null)); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
wmsReceiptBillDetailService.saveOrUpdateDetailsList2(sid, list, pcList); |
|
|
|
} |
|
|
|
if("0".equals(dto.getBillStateKey())){ |
|
|
|
wmsReceiptBill.setBillState("0"); |
|
|
|
}else{ |
|
|
|
wmsReceiptBill.setBillState("1"); |
|
|
|
// wmsReceiptBillDetailService.saveOrUpdateDetailsList2(sid, list, pcList);
|
|
|
|
wmsReceiptBillDetailService.deleteByBillSid(sid); |
|
|
|
for (WmsReceiptBillDetailDto2 detail : list) { |
|
|
|
WmsReceiptBillDetail wmsReceiptBillDetail = new WmsReceiptBillDetail(); |
|
|
|
BeanUtil.copyProperties(detail, wmsReceiptBillDetail, "sid"); |
|
|
|
wmsReceiptBillDetail.setBillSid(sid); |
|
|
|
wmsReceiptBillDetailService.insert(wmsReceiptBillDetail); |
|
|
|
String goodsSpuSid = detail.getGoodSpuSid(); |
|
|
|
String sourceBillSid = dto.getSourceBillSid(); |
|
|
|
// String goodsCount = baseMapper.selGoodsCountBySpuSidAndSouceSid(goodsSpuSid, sourceBillSid);
|
|
|
|
List<WmsReceiptBillDetail> details = baseMapper.selGoodsListCountBySpuSidAndSouceSid(goodsSpuSid,sourceBillSid); |
|
|
|
WmsAnsBillDetail goods = wmsAnsBillDetailService.fetchBySpuSidAndBillSid(goodsSpuSid, sourceBillSid); |
|
|
|
BigDecimal count = new BigDecimal("0"); |
|
|
|
if (!details.isEmpty()) { |
|
|
|
for (WmsReceiptBillDetail receiptBillDetail : details) { |
|
|
|
count = count.add(receiptBillDetail.getActualInCount()); |
|
|
|
} |
|
|
|
} |
|
|
|
if (null != goods) { |
|
|
|
BigDecimal orderCount = new BigDecimal(goods.getOrderCount()); |
|
|
|
goods.setActualInCount(count); |
|
|
|
goods.setWaitInCount(orderCount.subtract(count)); |
|
|
|
wmsAnsBillDetailService.updateById(goods); |
|
|
|
} |
|
|
|
} |
|
|
|
WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(dto.getSourceBillSid()); |
|
|
|
List<WmsAnsListDetailsVo> vos = wmsAnsBillDetailService.selectByBillSid(dto.getSourceBillSid()); |
|
|
|
if (!vos.isEmpty()) { |
|
|
|
HashSet<Integer> integers = new HashSet<>(); |
|
|
|
for (WmsAnsListDetailsVo vo : vos) { |
|
|
|
BigDecimal count = new BigDecimal("0"); |
|
|
|
if (StringUtils.isNotBlank(vo.getWaitInCount())) { |
|
|
|
count = new BigDecimal(vo.getWaitInCount()); |
|
|
|
} |
|
|
|
if (count.compareTo(BigDecimal.ZERO) < 0) { |
|
|
|
integers.add(2); |
|
|
|
} else { |
|
|
|
integers.add(1); |
|
|
|
} |
|
|
|
} |
|
|
|
if (integers.size() > 1) { |
|
|
|
wmsAnsBill.setBillState(1); |
|
|
|
} else { |
|
|
|
wmsAnsBill.setBillState(2); |
|
|
|
} |
|
|
|
} |
|
|
|
wmsAnsBillService.updateById(wmsAnsBill); |
|
|
|
} |
|
|
|
wmsReceiptBill.setBillState("0"); |
|
|
|
String applyCode = getApplyCode(dto.getCreateOrgSid()); |
|
|
|
wmsReceiptBill.setBillNo(applyCode); |
|
|
|
baseMapper.insert(wmsReceiptBill); |
|
|
|
|
|
|
|
} else { |
|
|
@ -138,12 +207,47 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp |
|
|
|
List<WmsReceiptBillDetailBatchDto2> pcList = dto.getPcList(); |
|
|
|
pcList.removeAll(Collections.singleton(null)); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
wmsReceiptBillDetailService.saveOrUpdateDetailsList2(sid, list, pcList); |
|
|
|
} |
|
|
|
if("0".equals(dto.getBillStateKey())){ |
|
|
|
wmsReceiptBill.setBillState("0"); |
|
|
|
}else{ |
|
|
|
wmsReceiptBill.setBillState("1"); |
|
|
|
wmsReceiptBillDetailService.deleteByBillSid(sid); |
|
|
|
// wmsReceiptBillDetailService.saveOrUpdateDetailsList2(sid, list, pcList);
|
|
|
|
for (WmsReceiptBillDetailDto2 detail : list) { |
|
|
|
WmsReceiptBillDetail wmsReceiptBillDetail = new WmsReceiptBillDetail(); |
|
|
|
BeanUtil.copyProperties(detail, wmsReceiptBillDetail, "sid"); |
|
|
|
wmsReceiptBillDetail.setBillSid(sid); |
|
|
|
wmsReceiptBillDetailService.insert(wmsReceiptBillDetail); |
|
|
|
String goodsSpuSid = detail.getGoodSpuSid(); |
|
|
|
String sourceBillSid = dto.getSourceBillSid(); |
|
|
|
String goodsCount = baseMapper.selGoodsCountBySpuSidAndSouceSid(goodsSpuSid, sourceBillSid); |
|
|
|
WmsAnsBillDetail goods = wmsAnsBillDetailService.fetchBySpuSidAndBillSid(goodsSpuSid, sourceBillSid); |
|
|
|
BigDecimal count = new BigDecimal(goodsCount); |
|
|
|
if (null != goods) { |
|
|
|
BigDecimal orderCount = new BigDecimal(goods.getOrderCount()); |
|
|
|
goods.setActualInCount(count); |
|
|
|
goods.setWaitInCount(orderCount.subtract(count)); |
|
|
|
wmsAnsBillDetailService.updateById(goods); |
|
|
|
} |
|
|
|
} |
|
|
|
WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(dto.getSourceBillSid()); |
|
|
|
List<WmsAnsListDetailsVo> vos = wmsAnsBillDetailService.selectByBillSid(dto.getSourceBillSid()); |
|
|
|
if (!vos.isEmpty()) { |
|
|
|
HashSet<Integer> integers = new HashSet<>(); |
|
|
|
for (WmsAnsListDetailsVo vo : vos) { |
|
|
|
BigDecimal count = new BigDecimal("0"); |
|
|
|
if (StringUtils.isNotBlank(vo.getWaitInCount())) { |
|
|
|
count = new BigDecimal(vo.getWaitInCount()); |
|
|
|
} |
|
|
|
if (count.compareTo(BigDecimal.ZERO) < 0) { |
|
|
|
integers.add(2); |
|
|
|
} else { |
|
|
|
integers.add(1); |
|
|
|
} |
|
|
|
} |
|
|
|
if (integers.size() > 1) { |
|
|
|
wmsAnsBill.setBillState(1); |
|
|
|
} else { |
|
|
|
wmsAnsBill.setBillState(2); |
|
|
|
} |
|
|
|
} |
|
|
|
wmsAnsBillService.updateById(wmsAnsBill); |
|
|
|
} |
|
|
|
baseMapper.updateById(wmsReceiptBill); |
|
|
|
} |
|
|
@ -154,21 +258,36 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp |
|
|
|
ResultBean<WmsReceiptBillVo> rb = ResultBean.fireFail(); |
|
|
|
WmsReceiptBillVo wmsReceiptBillVo = new WmsReceiptBillVo(); |
|
|
|
WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(sourceSid); |
|
|
|
BeanUtil.copyProperties(wmsAnsBill, wmsReceiptBillVo, "sid"); |
|
|
|
wmsReceiptBillVo.setSourceBillNo(wmsAnsBill.getSourceBillNo()); |
|
|
|
BeanUtil.copyProperties(wmsAnsBill, wmsReceiptBillVo, "sid", "billNo"); |
|
|
|
wmsReceiptBillVo.setSourceBillNo(wmsAnsBill.getBillNo()); |
|
|
|
wmsReceiptBillVo.setSourceBillSid(wmsAnsBill.getSid()); |
|
|
|
wmsReceiptBillVo.setCreateTime(DateUtil.today()); |
|
|
|
if (wmsAnsBill.getBillState() == 0) { |
|
|
|
wmsReceiptBillVo.setBillStateKey("0"); |
|
|
|
wmsReceiptBillVo.setBillState("新建"); |
|
|
|
} else { |
|
|
|
wmsReceiptBillVo.setBillState("完成"); |
|
|
|
wmsReceiptBillVo.setBillState("在途"); |
|
|
|
} else if (wmsAnsBill.getBillState() == 1) { |
|
|
|
wmsReceiptBillVo.setBillState("部分收货"); |
|
|
|
wmsReceiptBillVo.setBillStateKey("1"); |
|
|
|
} else if (wmsAnsBill.getBillState() == 2) { |
|
|
|
wmsReceiptBillVo.setBillState("已收货"); |
|
|
|
wmsReceiptBillVo.setBillStateKey("2"); |
|
|
|
} else if (wmsAnsBill.getBillState() == 3) { |
|
|
|
wmsReceiptBillVo.setBillState("已取消"); |
|
|
|
wmsReceiptBillVo.setBillStateKey("3"); |
|
|
|
} |
|
|
|
List<WmsAnsListDetailsVo> list = wmsAnsBillDetailService.selectByBillSid(sourceSid); |
|
|
|
list.removeAll(Collections.singleton(null)); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
List<WmsReceiptBillDetailVo> lists = Optional.ofNullable(list).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), WmsReceiptBillDetailVo.class)).collect(Collectors.toList()); |
|
|
|
// List<WmsReceiptBillDetailVo> lists = Optional.ofNullable(list).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), WmsReceiptBillDetailVo.class)).collect(Collectors.toList());
|
|
|
|
// wmsReceiptBillVo.setList(lists);
|
|
|
|
List<WmsReceiptBillDetailVo> lists = new ArrayList<>(); |
|
|
|
for (WmsAnsListDetailsVo wmsAnsListDetailsVo : list) { |
|
|
|
WmsReceiptBillDetailVo detailsVo = new WmsReceiptBillDetailVo(); |
|
|
|
BeanUtil.copyProperties(wmsAnsListDetailsVo, detailsVo); |
|
|
|
detailsVo.setIsQuality(0); |
|
|
|
detailsVo.setQualityState(0); |
|
|
|
lists.add(detailsVo); |
|
|
|
} |
|
|
|
wmsReceiptBillVo.setList(lists); |
|
|
|
} |
|
|
|
|
|
|
|