|
@@ -36,6 +36,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -826,6 +827,180 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> selectWareHouseNumber() {
|
|
|
+ List<Map<String, Object>> map= new ArrayList<>();
|
|
|
+ Map<String, Object> maps = new HashMap<>();
|
|
|
+ // 入库待办数量
|
|
|
+ maps.put("inStock",tWarehousebillsitemsMapper.inStock());
|
|
|
+ // 出库待办数量
|
|
|
+ maps.put("outStock",tWarehousebillsitemsMapper.outStock());
|
|
|
+
|
|
|
+ List<String> timeInterval =new ArrayList<>();
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ //获取当前月第一天:
|
|
|
+ Calendar c = Calendar.getInstance();
|
|
|
+ c.add(Calendar.MONTH, 0);
|
|
|
+ c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
|
|
|
+ timeInterval.add(format.format(c.getTime()));
|
|
|
+ //获取前月的最后一天
|
|
|
+ Calendar ca = Calendar.getInstance();
|
|
|
+ ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
|
|
|
+ timeInterval.add(format.format(ca.getTime()));
|
|
|
+ maps.put("monthInStock",tWarehousebillsitemsMapper.monthInStock(timeInterval));
|
|
|
+ // 当月出库待办数量
|
|
|
+ maps.put("monthOutStock",tWarehousebillsitemsMapper.monthOutStock(timeInterval));
|
|
|
+ map.add(maps);
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> selectWarehouseBusinessInStockList(TWarehouseBills tWarehousebills) {
|
|
|
+ if(tWarehousebills.getfBilltype().equals("SJRK")){
|
|
|
+ return tWarehousebillsitemsMapper.selectWarehouseBusinesInList(tWarehousebills);
|
|
|
+ }else {
|
|
|
+ return tWarehousebillsitemsMapper.selectWarehouseBusinesOutList(tWarehousebills);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public AjaxResult waitWarehousingItems(TWarehousebillsitems tWarehousebillsitems) {
|
|
|
+ // 先查询是否已经处理
|
|
|
+ TWarehousebillsitems tWarehousebillsitems1=tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(tWarehousebillsitems.getfId());
|
|
|
+ if(tWarehousebillsitems1.getfBillstatus().equals(30)){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("更新库存明细失败,该信息已操作,请重新加载");
|
|
|
+ }
|
|
|
+ int num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems);
|
|
|
+ if (num <= 0) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("更新库存明细失败");
|
|
|
+ }else{
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public AjaxResult addCreditItems(String tEnclosure ,String tWarehousebillsitems, String billsType,LoginUser loginUser) {
|
|
|
+ TWarehouseBills tWarehouseBills =new TWarehouseBills();
|
|
|
+ JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
|
|
|
+ List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
|
|
|
+ if(billsType.equals("SJRK")){
|
|
|
+ for(TWarehousebillsitems item : warehousebillsitemsList){
|
|
|
+ // 先查询是否已经处理
|
|
|
+ TWarehousebillsitems tWarehousebillsitems1=tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(item.getfId());
|
|
|
+ if(tWarehousebillsitems1.getfBillstatus().equals(40)){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("更新库存明细失败,该信息已操作,请重新加载");
|
|
|
+ }
|
|
|
+ // 查询主表
|
|
|
+ tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(item.getfPid());
|
|
|
+ // 查询库容量 是否可入库
|
|
|
+ int m = calculation(tWarehouseBills.getfWarehouseid(), item.getfGrossweight());
|
|
|
+ if (m == 0) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("更新库存总账失败-->入库毛重大于库容");
|
|
|
+ }
|
|
|
+ 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.setfIsInventory(0L);
|
|
|
+ int num = 0;
|
|
|
+ if (StringUtils.isNotNull(item.getfId())) {
|
|
|
+ item.setfBillstatus(40L);
|
|
|
+ item.setUpdateBy(loginUser.getUser().getUserName());
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
|
|
|
+ // 添加状态log
|
|
|
+ insertTWarehousebillsLog(item, 40L, loginUser);
|
|
|
+ }
|
|
|
+ if (num <= 0) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("新增库存明细失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
|
|
|
+ // 先查询是否已经处理
|
|
|
+ TWarehousebillsitems tWarehousebillsitems1=tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(wbItem.getfId());
|
|
|
+ if(tWarehousebillsitems1.getfBillstatus().equals(40)){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("更新库存明细失败,该信息已操作,请重新加载");
|
|
|
+ }
|
|
|
+ // 查询总账是否存在
|
|
|
+ TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, wbItem);
|
|
|
+ if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("库存明细库存为空");
|
|
|
+ } else { // 非空修改库存总账
|
|
|
+ // 库存 < 出库件数
|
|
|
+ if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("库存明细库存不足");
|
|
|
+ }
|
|
|
+ // 更新库存总账
|
|
|
+ updateTWhgenlegData(wbItem, tWhgenle.getfId(), billsType);
|
|
|
+ if (StringUtils.isNull(tWarehouseBills.getfBsdate()) || StringUtils.isNull(wbItem.getfChargedate())) {
|
|
|
+ return AjaxResult.error("库存明细请检查日期,操作终止");
|
|
|
+ }
|
|
|
+ if (StringUtils.isNull(tWarehouseBills.getfCorpid())) {
|
|
|
+ return AjaxResult.error("库存明细请检查客户信息,操作终止");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ wbItem.setfBillstatus(40L);
|
|
|
+ int num = 0;
|
|
|
+ wbItem.setfPid(tWarehouseBills.getfId());
|
|
|
+ wbItem.setfBilltype(billsType);
|
|
|
+ wbItem.setfBillno(tWarehouseBills.getfBillno());
|
|
|
+ wbItem.setfBsdate(tWarehouseBills.getfBsdate());
|
|
|
+ if (StringUtils.isNotNull(wbItem.getfId())) {
|
|
|
+ wbItem.setUpdateBy(loginUser.getUser().getUserName());
|
|
|
+ wbItem.setUpdateTime(new Date());
|
|
|
+ num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(wbItem);
|
|
|
+ // 添加状态log
|
|
|
+ insertTWarehousebillsLog(wbItem, 40L, loginUser);
|
|
|
+ }
|
|
|
+ if (num <= 0) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("库存明细更新失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 主表修改
|
|
|
+ tWarehouseBills.setfItemsStatus(4L);
|
|
|
+ tWarehouseBills.setfBilltype(billsType);
|
|
|
+ tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
|
|
|
+ tWarehouseBills.setUpdateTime(new Date());
|
|
|
+ tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
|
|
|
+ // 附件添加
|
|
|
+ if (StringUtils.isNotEmpty(tEnclosure) && !"[]".equals(tEnclosure)) {
|
|
|
+ JSONArray jsonDrArray = JSONArray.parseArray(tEnclosure);
|
|
|
+ List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
|
|
|
+ for (TEnclosure enclosure : tEnclosureList) {
|
|
|
+ enclosure.setfPid(tWarehouseBills.getfId());
|
|
|
+ enclosure.setCreateBy(loginUser.getUser().getUserName());
|
|
|
+ enclosure.setCreateTime(new Date());
|
|
|
+ tEnclosureMapper.insertTEnclosure(enclosure);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 根据仓库主表id 更新对应明细表状态
|
|
|
*
|
|
@@ -931,7 +1106,14 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
boolean businessStatus = "场地直装".equals(tWarehouseBills.getfBusinessType());
|
|
|
JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
|
|
|
List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
|
|
|
+ int i=1;
|
|
|
for (TWarehousebillsitems item : warehousebillsitemsList) {
|
|
|
+ // 查询是否可以修改
|
|
|
+ TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(item.getfId());
|
|
|
+ if(tWarehousebillsitems.getfBillstatus().equals(40)){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("更新库存明细第"+i+"行失败,已处理,请刷新网页");
|
|
|
+ }
|
|
|
if (!businessStatus) {
|
|
|
// 查询库容量 是否可入库
|
|
|
int m = calculation(tWarehouseBills.getfWarehouseid(), item.getfGrossweight());
|
|
@@ -943,8 +1125,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
item.setfChargedate(tWarehouseBills.getfChargedate());
|
|
|
TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, item);
|
|
|
if (StringUtils.isNotNull(tWhgenle)) {
|
|
|
- int i = updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
|
|
|
- if (i <= 0) {
|
|
|
+ int i1 = updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
|
|
|
+ if (i1 <= 0) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("更新库存总账失败");
|
|
|
}
|
|
@@ -971,6 +1153,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("新增库存明细失败");
|
|
|
}
|
|
|
+ i++;
|
|
|
}
|
|
|
// 附件添加
|
|
|
if (StringUtils.isNotEmpty(tEnclosure) && !"[]".equals(tEnclosure)) {
|
|
@@ -1056,6 +1239,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
List<TFees> feesList = new ArrayList<>();
|
|
|
List<TWarehousebillsfees> warehousebillsfees = new ArrayList<>();
|
|
|
for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
|
|
|
+ // 查询是否可以修改
|
|
|
+ TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(wbItem.getfId());
|
|
|
+ if(tWarehousebillsitems.getfBillstatus().equals(40)){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("更新库存明细第"+i+"行失败,已处理,请刷新网页");
|
|
|
+ }
|
|
|
long warehouselocId = 0L;
|
|
|
long transferWarehouselocid = 0L;
|
|
|
if ("CKDB".equals(billsType)) {
|
|
@@ -1248,6 +1437,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional
|
|
|
public AjaxResult waitWarehousing(String warehouseBills, String warehousebillsitems,
|
|
|
String tEnclosure, String tWarehousebillsfeesCr, String tWarehousebillsfeesDr,
|
|
|
LoginUser loginUser, Long status, String billtystatus) {
|
|
@@ -1280,14 +1470,23 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
*/
|
|
|
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);
|
|
|
+ if(status==20){
|
|
|
+ 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);
|
|
|
+ }
|
|
|
}
|
|
|
+ int i=1;
|
|
|
for (TWarehousebillsitems item : warehousebillsitemsList) {
|
|
|
+ // 查询是否可以修改
|
|
|
+ TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(item.getfId());
|
|
|
+ if(tWarehousebillsitems.getfBillstatus().equals(30)){
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("更新库存明细第"+i+"行失败,已处理,请刷新网页");
|
|
|
+ }
|
|
|
if (item.getfBillstatus() < 30L) {
|
|
|
if(item.getfSerialNumber()==null || item.getfSerialNumber().equals("")){
|
|
|
item.setfSerialNumber(serialNumber);
|
|
@@ -1304,6 +1503,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
}
|
|
|
mapList.add(item);
|
|
|
+ i++;
|
|
|
}
|
|
|
// 附件添加
|
|
|
if (StringUtils.isNotEmpty(tEnclosure) && !"[]".equals(tEnclosure)) {
|