|
@@ -25,6 +25,8 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
|
|
|
+import static java.util.stream.Collectors.toList;
|
|
|
+
|
|
|
/**
|
|
|
* 详情主表Service业务层处理
|
|
|
*
|
|
@@ -78,6 +80,9 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
private BillnoDelMapper billnoDelMapper;
|
|
|
|
|
|
@Autowired
|
|
|
+ private TWarehousebillsLogMapper tWarehousebillsLogMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private TWarehouseAgreementServiceImpl tWarehouseAgreementService;
|
|
|
|
|
|
|
|
@@ -360,16 +365,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
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);
|
|
@@ -385,118 +380,46 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
warehouseBills.setUpdateBy(loginUser.getUser().getUserName());
|
|
|
warehouseBills.setUpdateTime(new Date());
|
|
|
tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
|
|
|
- tWarehousebillsitemsMapper.deleteByFPid(fPid);
|
|
|
tWarehousebillsfeesMapper.deleteByFPid(fPid);
|
|
|
tEnclosureMapper.deleteByFPid(fPid);
|
|
|
+ // 删除 从表中 未打印账单的数据
|
|
|
+ deleteBillsitems(fPid,tWarehousebillsitems);
|
|
|
}
|
|
|
- // 查询库存总账 库存明细不为空 并且 入库不是暂存状态 进行库存总账的查询新增修改
|
|
|
- if (tWarehousebillsitems != null && !"2".equals(warehouseBills.getfBillstatus())) {
|
|
|
+ // 库存明细添加
|
|
|
+ if (tWarehousebillsitems != null ) {
|
|
|
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");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ // 仓储计费日期
|
|
|
+ wbItem.setfChargedate(warehouseBills.getfChargedate());
|
|
|
+ if(null!=wbItem.getfId()){
|
|
|
+ wbItem.setUpdateBy(loginUser.getUser().getUserName());
|
|
|
+ wbItem.setUpdateTime(new Date());
|
|
|
+ tWarehousebillsitemsMapper.updateTWarehousebillsitems(wbItem);
|
|
|
+ }else{
|
|
|
+ // 添加主表 业务单号
|
|
|
+ wbItem.setfBillno(warehouseBills.getfBillno());
|
|
|
+ wbItem.setfMblno(warehouseBills.getfMblno());
|
|
|
+ wbItem.setfPid(fPid);
|
|
|
+ wbItem.setCreateBy(loginUser.getUser().getUserName());
|
|
|
+ wbItem.setCreateTime(new Date());
|
|
|
+ Long status = null;
|
|
|
+ if (billsType.equals("SJRK")){
|
|
|
+ wbItem.setfBillstatus("10");
|
|
|
+ status=10l;
|
|
|
+ } else if(billsType.equals("SJCK")){
|
|
|
+ wbItem.setfBillstatus("60");
|
|
|
+ status=60l;
|
|
|
}
|
|
|
- } 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");
|
|
|
- }
|
|
|
- }
|
|
|
+ tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
|
|
|
+ if(!billsType.equals("HQZY")){
|
|
|
+ // 添加状态log
|
|
|
+ insertTWarehousebillsLog(wbItem, status,loginUser);
|
|
|
}
|
|
|
}
|
|
|
- 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);
|
|
|
+ // 录入库存明细整体状态 --> 更新主表 入账状态
|
|
|
+ updateWarehousebillsItemsStatus(warehouseBills);
|
|
|
}
|
|
|
// 附件添加
|
|
|
if (StringUtils.isNotNull(tWhgenleg)) {
|
|
@@ -545,14 +468,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
*
|
|
|
* @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) {
|
|
|
+ public AjaxResult addCredit(String warehouseBills, String warehousebillsitems, LoginUser loginUser, String billsType) {
|
|
|
Long fPid = null;
|
|
|
if (StringUtils.isNull(warehouseBills) || "[]".equals(warehouseBills)) {
|
|
|
return AjaxResult.error("未找到主表信息");
|
|
@@ -565,30 +487,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
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);
|
|
@@ -604,15 +506,14 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
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())) {
|
|
|
+ item.setfBillstatus("40");
|
|
|
+ item.setUpdateBy(loginUser.getUser().getUserName());
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
|
|
|
- } else {
|
|
|
- num = tWarehousebillsitemsMapper.insertTWarehousebillsitems(item);
|
|
|
+ // 添加状态log
|
|
|
+ insertTWarehousebillsLog(item,40l,loginUser);
|
|
|
}
|
|
|
if (num <= 0) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
@@ -620,43 +521,9 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
}
|
|
|
// 查询所有库存明细 修改仓库主表状态
|
|
|
- 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);
|
|
|
- }
|
|
|
- }
|
|
|
+ updateWarehousebillsItemsStatus(tWarehouseBills);
|
|
|
// 添加成功 主键返回 前台
|
|
|
- return AjaxResult.success("成功", fPid);
|
|
|
+ return AjaxResult.success(warehousebillsitems);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -685,23 +552,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
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);
|
|
@@ -709,8 +559,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
List<TFees> feesList = new ArrayList<>();
|
|
|
List<TWarehousebillsfees> warehousebillsfees = new ArrayList<>();
|
|
|
for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
|
|
|
- // 唛头添加
|
|
|
- wbItem.setfMarks(tWarehouseBills.getfMarks());
|
|
|
// 查询总账是否存在
|
|
|
TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, wbItem);
|
|
|
// 入库数特殊不判断入账
|
|
@@ -805,16 +653,15 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
}
|
|
|
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())) {
|
|
|
+ wbItem.setfBillstatus("90");
|
|
|
+ wbItem.setfBsdate(tWarehouseBills.getfBsdate());
|
|
|
+ wbItem.setUpdateBy(loginUser.getUser().getUserName());
|
|
|
+ wbItem.setUpdateTime(new Date());
|
|
|
num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(wbItem);
|
|
|
- } else {
|
|
|
- num = tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
|
|
|
+ // 添加状态log
|
|
|
+ insertTWarehousebillsLog(wbItem,90l,loginUser);
|
|
|
}
|
|
|
if (num <= 0) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
@@ -822,31 +669,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
}
|
|
|
// 查询所有库存明细 修改仓库主表状态
|
|
|
- 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);
|
|
|
+ updateWarehousebillsItemsStatus(tWarehouseBills);
|
|
|
map.put("fPid", fPid);
|
|
|
map.put("fees", feesList);
|
|
|
map.put("warehousebillsfees", warehousebillsfees);
|
|
@@ -854,6 +677,66 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
return AjaxResult.success("成功", map);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult waitWarehousing(String warehouseBills, String warehousebillsitems, LoginUser loginUser, String status) {
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
|
|
|
+ List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
|
|
|
+ for (TWarehousebillsitems item : warehousebillsitemsList) {
|
|
|
+ // 生成流水号
|
|
|
+ Date time = new Date();
|
|
|
+ String serialNumber;
|
|
|
+ if(status.equals("20")){ // 生成 入库 流水号
|
|
|
+ serialNumber = billnoSerialServiceImpl.getSerialNumber("RK", time);
|
|
|
+ item.setfSerialNumber(serialNumber);
|
|
|
+ } else if (status.equals("70")){ //生成 出库 流水号
|
|
|
+ serialNumber = billnoSerialServiceImpl.getSerialNumber("CK", time);
|
|
|
+ item.setfSerialNumber(serialNumber);
|
|
|
+ }
|
|
|
+ int num = 0;
|
|
|
+ if (StringUtils.isNotNull(item.getfId())) {
|
|
|
+ item.setfBillstatus(status);
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ item.setUpdateBy(loginUser.getUser().getUserName());
|
|
|
+ num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
|
|
|
+ // 添加状态log
|
|
|
+ insertTWarehousebillsLog(item,Long.parseLong(status),loginUser);
|
|
|
+ } else {
|
|
|
+ item.setfPid(tWarehouseBills.getfId());
|
|
|
+ item.setfBillno(tWarehouseBills.getfBillno());
|
|
|
+ item.setfBillstatus(status);
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setCreateBy(loginUser.getUser().getUserName());
|
|
|
+ num = tWarehousebillsitemsMapper.insertTWarehousebillsitems(item);
|
|
|
+ // 添加状态log
|
|
|
+ if(status.equals("20")){
|
|
|
+ insertTWarehousebillsLog(item,10L,loginUser);
|
|
|
+ } else if(status.equals("70")){
|
|
|
+ insertTWarehousebillsLog(item,60L,loginUser);
|
|
|
+ }
|
|
|
+ insertTWarehousebillsLog(item,Long.parseLong(status),loginUser);
|
|
|
+ }
|
|
|
+ if (num <= 0) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("更新库存明细失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 返回从表数据明细
|
|
|
+ return AjaxResult.success(warehousebillsitems);
|
|
|
+ }
|
|
|
+
|
|
|
// 入库 收费明细 校验
|
|
|
public Long check(BigDecimal number, BigDecimal unitPrice) {
|
|
|
BigDecimal result1 = number.multiply(unitPrice);
|
|
@@ -1086,33 +969,89 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ updateWarehousebillsItemsStatus(tWarehousebills);
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 主表、库存明细表 更新 入账状态
|
|
|
+ */
|
|
|
+ public void updateWarehousebillsItemsStatus(TWarehouseBills warehouseBill){
|
|
|
// 查询所有库存明细 修改仓库主表状态
|
|
|
int notInStorage = 0;
|
|
|
int Stored = 0;
|
|
|
TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
|
|
|
- tWarehousebillsitems.setfPid(fPid);
|
|
|
+ tWarehousebillsitems.setfPid(warehouseBill.getfId());
|
|
|
List<TWarehousebillsitems> warehousebillsitemsList1 = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
|
|
|
for (TWarehousebillsitems item : warehousebillsitemsList1) {
|
|
|
- if (item.getfBillstatus() == null) {
|
|
|
- notInStorage++;
|
|
|
- } else if (item.getfBillstatus().equals("6")) {
|
|
|
+ if (item.getfBillstatus().equals("40") | item.getfBillstatus().equals("90")) {
|
|
|
Stored++;
|
|
|
- } else if (item.getfBillstatus().equals("1")) {
|
|
|
+ } else {
|
|
|
notInStorage++;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
// 录入库存明细整体状态
|
|
|
- TWarehouseBills warehouseBill = new TWarehouseBills();
|
|
|
- warehouseBill.setfId(fPid);
|
|
|
+ TWarehouseBills warehouseBill1 = new TWarehouseBills();
|
|
|
+ warehouseBill1.setfId(warehouseBill.getfId());
|
|
|
if (Objects.equals(Stored, 0)) { // 未入库
|
|
|
- warehouseBill.setfItemsStatus("1");
|
|
|
+ warehouseBill1.setfItemsStatus("1");
|
|
|
} else if (Objects.equals(notInStorage, 0)) { // 已入库
|
|
|
- warehouseBill.setfItemsStatus("6");
|
|
|
+ warehouseBill1.setfItemsStatus("6");
|
|
|
} else { // 有已入库、有未入库
|
|
|
- warehouseBill.setfItemsStatus("2");
|
|
|
+ warehouseBill1.setfItemsStatus("2");
|
|
|
}
|
|
|
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBill);
|
|
|
- return AjaxResult.success();
|
|
|
+ tWarehouseBillsMapper.updateTWarehousebills(warehouseBill1);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加 库存明细状态
|
|
|
+ * @param wbItem
|
|
|
+ * @param status
|
|
|
+ * @param loginUser
|
|
|
+ */
|
|
|
+ public void insertTWarehousebillsLog(TWarehousebillsitems wbItem,Long status,LoginUser loginUser){
|
|
|
+ // 添加状态log
|
|
|
+ TWarehousebillsLog tWarehousebillsLog =new TWarehousebillsLog();
|
|
|
+ tWarehousebillsLog.setfPid(wbItem.getfPid());
|
|
|
+ tWarehousebillsLog.setfItmeid(wbItem.getfId());
|
|
|
+ tWarehousebillsLog.setfItmestatus(status);
|
|
|
+ tWarehousebillsLog.setCreateTime(new Date());
|
|
|
+ tWarehousebillsLog.setCreateBy(loginUser.getUser().getUserName());
|
|
|
+ tWarehousebillsLogMapper.insertTWarehousebillsLog(tWarehousebillsLog);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除 库存明细
|
|
|
+ * @param fid
|
|
|
+ * @param tWarehousebillsitems
|
|
|
+ */
|
|
|
+ public void deleteBillsitems(Long fid,String tWarehousebillsitems){
|
|
|
+ List<Long> oldList = new ArrayList<Long>();
|
|
|
+ List<Long> newList = new ArrayList<Long>();
|
|
|
+
|
|
|
+ // 查询所有从表数据
|
|
|
+ TWarehousebillsitems tWarehousebillsitem = new TWarehousebillsitems();
|
|
|
+ tWarehousebillsitem.setfPid(fid);
|
|
|
+ List<TWarehousebillsitems> warehousebillsitemsList = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitem);
|
|
|
+ warehousebillsitemsList.forEach(wb ->
|
|
|
+ oldList.add(wb.getfId())
|
|
|
+ );
|
|
|
+
|
|
|
+ // 获取提交从表数据ID
|
|
|
+ if (tWarehousebillsitems != null ) {
|
|
|
+ JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
|
|
|
+ List<TWarehousebillsitems> warehousebillsitemsLists = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
|
|
|
+ warehousebillsitemsLists.forEach(wb->
|
|
|
+ newList.add(wb.getfId())
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ // 删除多余的ID
|
|
|
+ List<Long> reduce1 = oldList.stream().filter(item -> !newList.contains(item)).collect(toList());
|
|
|
+ reduce1.forEach(id ->
|
|
|
+ tWarehousebillsitemsMapper.deleteByFPid(id)
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
}
|