|
@@ -656,7 +656,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
TWarehousebillsitems warehousebillsitems = new TWarehousebillsitems();
|
|
|
warehousebillsitems.setfPid(fPid);
|
|
|
- map.put("warehouseBills", warehouseBills);
|
|
|
+ map.put("warehouseBills", tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId()));
|
|
|
map.put("warehousebillsitems", tWarehousebillsitemsMapper.selectGoodsTransferitemsList(warehousebillsitems));
|
|
|
return AjaxResult.success("成功", map);
|
|
|
}
|
|
@@ -1011,22 +1011,17 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
String tWarehousebillsitems, String tEnclosure, LoginUser loginUser, String tCntr, String billsType) {
|
|
|
Long fPid = null;
|
|
|
boolean isApprove = false;
|
|
|
+ Long actId = queryWarehouseActId(billsType);
|
|
|
String key = "";
|
|
|
- long actId = 0L;
|
|
|
if ("SJRK".equals(billsType)) {
|
|
|
- actId = 110L;
|
|
|
key = "warehouse.inStock.ApprovalFlow";
|
|
|
} else if ("SJCK".equals(billsType)) {
|
|
|
- actId = 120L;
|
|
|
key = "warehouse.outStock.ApprovalFlow";
|
|
|
} else if ("CKDB".equals(billsType)) {
|
|
|
- actId = 140L;
|
|
|
key = "warehouse.stockTransfer.ApprovalFlow";
|
|
|
} else if ("HQZY".equals(billsType)) {
|
|
|
- actId = 130L;
|
|
|
key = "warehouse.transfer.ApprovalFlow";
|
|
|
} else if ("HWTG".equals(billsType)) {
|
|
|
- actId = 160L;
|
|
|
key = "warehouse.cargoClearance.ApprovalFlow";
|
|
|
}
|
|
|
SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique(key);
|
|
@@ -1057,6 +1052,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
Date time = new Date();
|
|
|
String bscorpno = billnoSerialServiceImpl.getCorpNo(warehouseBills.getfCorpid(), time);
|
|
|
warehouseBills.setfBscorpno(bscorpno);
|
|
|
+ warehouseBills.setfTimes(1L);
|
|
|
tWarehouseBillsMapper.insertTWarehousebills(warehouseBills);
|
|
|
fPid = warehouseBills.getfId();
|
|
|
} else {
|
|
@@ -1067,6 +1063,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
warehouseBills.setfBillstatus(6L);
|
|
|
warehouseBills.setfReviewDate(new Date());
|
|
|
}
|
|
|
+ warehouseBills.setfTimes(warehouseBills.getfTimes() + 1);
|
|
|
warehouseBills.setUpdateTime(new Date());
|
|
|
if (!"SJRK".equals(billsType)) {
|
|
|
warehouseBills.setfChargedate(warehouseBills.getfBsdate());
|
|
@@ -1213,6 +1210,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
auditItems.setAuditOpTime(new Date());
|
|
|
auditItems.setAuditMsg("提交");
|
|
|
auditItems.setAuditStatus("O");
|
|
|
+ auditItems.setFidStatus("f_billstatus");
|
|
|
+ auditItems.setTimes(warehouseBills.getfTimes());
|
|
|
AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
|
|
|
// Long code = Long.valueOf(String.valueOf(approvalFlow.get("code"))).longValue();
|
|
|
String code = approvalFlow.get("code").toString();
|
|
@@ -1722,6 +1721,196 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 提交仓库主表审批
|
|
|
+ * @param tWarehouseBills 主表信息
|
|
|
+ * @param tWarehousebillsfeesCr 付款信息
|
|
|
+ * @param tWarehousebillsfeesDr 收款信息
|
|
|
+ * @param tWarehousebillsitems 仓储明细
|
|
|
+ * @param tEnclosure 附件信息
|
|
|
+ * @param tCntr 箱型箱量
|
|
|
+ * @param billsType 类型
|
|
|
+ * @return 结果
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public AjaxResult submitWarehousingApproval(String tWarehouseBills, String tWarehousebillsfeesCr, String tWarehousebillsfeesDr,
|
|
|
+ String tWarehousebillsitems, String tEnclosure, String tCntr, String billsType) {
|
|
|
+ Long fPid = null;
|
|
|
+ boolean isApprove = false;
|
|
|
+ SysUser user = SecurityUtils.getLoginUser().getUser();
|
|
|
+ Long actId = queryWarehouseActId(billsType);
|
|
|
+ SysConfig sysConfig = queryWarehouseConfig(billsType);
|
|
|
+ if (StringUtils.isNull(sysConfig)) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("系统参数异常,未找到开启审批流参数");
|
|
|
+ }
|
|
|
+ if ("0".equals(sysConfig.getConfigValue())) {
|
|
|
+ isApprove = true;
|
|
|
+ }
|
|
|
+ TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehouseBills, TWarehouseBills.class);
|
|
|
+ if (isApprove) {
|
|
|
+ warehouseBills.setWarehouseStatus(4L);
|
|
|
+ } else {
|
|
|
+ warehouseBills.setWarehouseStatus(6L);
|
|
|
+ }
|
|
|
+ // 仓库主表
|
|
|
+ if (StringUtils.isNull(warehouseBills.getfId())) {
|
|
|
+ return AjaxResult.error("请确认仓库信息是否保存");
|
|
|
+ }
|
|
|
+ fPid = warehouseBills.getfId();
|
|
|
+ if (!"SJRK".equals(billsType)) {
|
|
|
+ warehouseBills.setfChargedate(warehouseBills.getfBsdate());
|
|
|
+ }
|
|
|
+ warehouseBills.setfTimes(warehouseBills.getfTimes() + 1);
|
|
|
+ warehouseBills.setUpdateTime(new Date());
|
|
|
+ warehouseBills.setUpdateBy(user.getUserName());
|
|
|
+ tEnclosureMapper.deleteByFPid(fPid);
|
|
|
+ tWarehousebillsfeesMapper.deleteByFPid(fPid);
|
|
|
+ tWarehousebillsitemsMapper.deleteByFPid(fPid);
|
|
|
+ tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
|
|
|
+ tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(fPid);
|
|
|
+ // 仓储明细
|
|
|
+ if (StringUtils.isNotEmpty(tWarehousebillsitems) && "[]".equals(tWarehousebillsitems)) {
|
|
|
+ JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
|
|
|
+ List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
|
|
|
+ int line = 0;
|
|
|
+ for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
|
|
|
+ line++;
|
|
|
+ if ("SJRK".equals(billsType) || "SJCK".equals(billsType) || "CKDB".equals(billsType) || "HWTG".equals(billsType)) {
|
|
|
+ if (StringUtils.isNull(wbItem.getfChargedate())) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("库存明细第" + line + "行未找到仓储费计费日期,请确认");
|
|
|
+ }
|
|
|
+ if (StringUtils.isNull(wbItem.getfBillingway())) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("库存明细第" + line + "行未找到计费方式,请确认");
|
|
|
+ }
|
|
|
+ if (StringUtils.isNull(wbItem.getfOriginalbilldate())) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("库存明细第" + line + "行未找到原始入库日期,请确认");
|
|
|
+ }
|
|
|
+ // 除了入库其他模块不需要更新主表的 仓储费计费日期到明细表,其他模块 应从库存总账把仓储费计费日期 赋给明细表
|
|
|
+ if ("SJRK".equals(billsType)) {
|
|
|
+ wbItem.setfMblno(warehouseBills.getfMblno());
|
|
|
+ wbItem.setfBillingway(warehouseBills.getfBillingway());
|
|
|
+ wbItem.setfChargedate(warehouseBills.getfChargedate());
|
|
|
+ wbItem.setfOriginalbilldate(warehouseBills.getfBsdate());
|
|
|
+ wbItem.setfMblno(warehouseBills.getfMblno());// 入库更新库存前执行update更新明细的提单号等于主表的提单号
|
|
|
+ }
|
|
|
+ }
|
|
|
+ wbItem.setfPid(fPid);
|
|
|
+ wbItem.setfBilltype(billsType);
|
|
|
+ wbItem.setCreateTime(new Date());
|
|
|
+ wbItem.setfBillno(warehouseBills.getfBillno());
|
|
|
+ wbItem.setCreateBy(user.getUserName());
|
|
|
+ tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 箱型数据
|
|
|
+ if (StringUtils.isNotNull(tCntr) && !"[]".equals(tCntr)) {
|
|
|
+ JSONArray jsonDrArray = JSONArray.parseArray(tCntr);
|
|
|
+ List<TWarehousebillsCntr> tWarehousebillsCntrs = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsCntr.class);
|
|
|
+ int cntrLine = 0;
|
|
|
+ for (TWarehousebillsCntr cntr : tWarehousebillsCntrs) {
|
|
|
+ cntrLine++;
|
|
|
+ if (StringUtils.isNull(cntr.getfCntrid()) || StringUtils.isNull(cntr.getfCntrcount()) || cntr.getfCntrcount() == 0) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("箱型数据第" + cntrLine + "行数据缺少必填数据");
|
|
|
+ }
|
|
|
+ cntr.setfPid(fPid);
|
|
|
+ cntr.setfGoodsid(0L);
|
|
|
+ cntr.setfPackageid("0");
|
|
|
+ cntr.setCreateTime(new Date());
|
|
|
+ cntr.setCreateBy(user.getUserName());
|
|
|
+ cntr.setfCntrweight(new BigDecimal(0));
|
|
|
+ tWarehousebillsCntrMapper.insertTWarehousebillsCntr(cntr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotNull(tWarehousebillsfeesCr) && !"[]".equals(tWarehousebillsfeesCr)) {
|
|
|
+ JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesCr);
|
|
|
+ List<TWarehousebillsfees> warehousebillsfeesCrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
|
|
|
+ for (TWarehousebillsfees wbCr : warehousebillsfeesCrList) {
|
|
|
+ wbCr.setfPid(fPid);
|
|
|
+ wbCr.setfDc("C");
|
|
|
+ wbCr.setfBilltype(billsType);
|
|
|
+ wbCr.setCreateTime(new Date());
|
|
|
+ wbCr.setSrcBillNo(warehouseBills.getfBillno());
|
|
|
+ wbCr.setCreateBy(user.getUserName());
|
|
|
+ wbCr.setfChargedate(warehouseBills.getfChargedate());
|
|
|
+ wbCr.setfBillingDeadline(warehouseBills.getfChargedate());
|
|
|
+ if (StringUtils.isNotNull(warehouseBills.getfBsdate())) {
|
|
|
+ wbCr.setfBsdate(warehouseBills.getfBsdate());
|
|
|
+ }
|
|
|
+ tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotNull(tWarehousebillsfeesDr) && !"[]".equals(tWarehousebillsfeesDr)) {
|
|
|
+ JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesDr);
|
|
|
+ List<TWarehousebillsfees> warehousebillsfeesDrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
|
|
|
+ for (TWarehousebillsfees wbDr : warehousebillsfeesDrList) {
|
|
|
+ wbDr.setfPid(fPid);
|
|
|
+ wbDr.setfDc("D");
|
|
|
+ wbDr.setfBillstatus(4L);
|
|
|
+ wbDr.setfBilltype(billsType);
|
|
|
+ wbDr.setCreateTime(new Date());
|
|
|
+ wbDr.setSrcBillNo(warehouseBills.getfBillno());
|
|
|
+ wbDr.setCreateBy(user.getUserName());
|
|
|
+ wbDr.setfChargedate(warehouseBills.getfChargedate());
|
|
|
+ wbDr.setfBillingDeadline(warehouseBills.getfChargedate());
|
|
|
+ if (StringUtils.isNotNull(warehouseBills.getfBsdate())) {
|
|
|
+ wbDr.setfBsdate(warehouseBills.getfBsdate());
|
|
|
+ }
|
|
|
+ tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotNull(tEnclosure) && !"[]".equals(tEnclosure)) {
|
|
|
+ JSONArray jsonEnclosureArray = JSONArray.parseArray(tEnclosure);
|
|
|
+ List<TEnclosure> enclosuresList = JSONObject.parseArray(jsonEnclosureArray.toJSONString(), TEnclosure.class);
|
|
|
+ long lineNo = 0L;
|
|
|
+ for (TEnclosure enclosure : enclosuresList) {
|
|
|
+ lineNo++;
|
|
|
+ enclosure.setfPid(fPid);
|
|
|
+ enclosure.setfLineno(lineNo);
|
|
|
+ enclosure.setCreateTime(new Date());
|
|
|
+ enclosure.setCreateBy(user.getUserName());
|
|
|
+ tEnclosureMapper.insertTEnclosure(enclosure);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 这里加个判断取系统参数来确定是否需要启用审批流
|
|
|
+ if (isApprove) {
|
|
|
+ AuditItems auditItems = new AuditItems();
|
|
|
+ auditItems.setLevelId(0L);
|
|
|
+ auditItems.setBillId(fPid);
|
|
|
+ auditItems.setActId(actId);
|
|
|
+ auditItems.setIffinalItem("F");
|
|
|
+ auditItems.setBillNo(warehouseBills.getfBillno());
|
|
|
+ // 存储委托方(货权方)
|
|
|
+ auditItems.setRefno1(warehouseBills.getfCorpid() + "");
|
|
|
+ // 存储业务类型(业务类型)
|
|
|
+ auditItems.setRefno2(warehouseBills.getfBilltype());
|
|
|
+ // 存储提单号(提单号)
|
|
|
+ auditItems.setRefno3(warehouseBills.getfMblno());
|
|
|
+ auditItems.setSendUserId(user.getUserId());
|
|
|
+ auditItems.setSendName(user.getUserName());
|
|
|
+ auditItems.setSendTime(new Date());
|
|
|
+ auditItems.setAuditUserId(user.getUserId());
|
|
|
+ auditItems.setAuditItem(new Date());
|
|
|
+ auditItems.setAuditOpTime(new Date());
|
|
|
+ auditItems.setAuditMsg("提交");
|
|
|
+ auditItems.setAuditStatus("O");
|
|
|
+ auditItems.setFidStatus("warehouse_status");
|
|
|
+ auditItems.setTimes(warehouseBills.getfTimes() + 1);
|
|
|
+ AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
|
|
|
+ String code = approvalFlow.get("code").toString();
|
|
|
+ if ("500".equals(code)) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ }
|
|
|
+ return approvalFlow;
|
|
|
+ }
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* app仓储新行提交业务
|
|
|
*
|
|
|
* @param item 仓库明细数据
|
|
@@ -3687,6 +3876,26 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 撤销已审核通过的接单入库信息
|
|
|
+ * @param fId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public AjaxResult withdrawOrdersById(Long fId) {
|
|
|
+ // 查询 仓库主表信息、库存明细信息
|
|
|
+ TWarehouseBills tWarehousebills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
|
|
|
+ if (tWarehousebills.getWarehouseStatus() != 6L) {
|
|
|
+ return AjaxResult.error("主单据状态异常,请确认单据状态是否已审核通过");
|
|
|
+ }
|
|
|
+ tWarehousebills.setUpdateTime(new Date());
|
|
|
+ tWarehousebills.setWarehouseStatus(2L); //撤销状态
|
|
|
+ tWarehousebills.setUpdateBy(SecurityUtils.getUsername());
|
|
|
+ tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 撤销入账
|
|
|
*
|
|
|
* @param warehouseBills 主表
|
|
@@ -4048,4 +4257,92 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
return tWarehouseBillsMapper.selectTWarehousebillsById(fid);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询是否开启审批流
|
|
|
+ * @param billsType
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public SysConfig queryWarehouseConfig (String billsType) {
|
|
|
+ String key = "";
|
|
|
+ if ("SJRK".equals(billsType)) {
|
|
|
+ key = "instock.orders.approval";
|
|
|
+ } else if ("SJCK".equals(billsType)) {
|
|
|
+ key = "outStock.orders.approvalFlow";
|
|
|
+ } else if ("CKDB".equals(billsType)) {
|
|
|
+ key = "stockTransfer.orders.approvalFlow";
|
|
|
+ } else if ("HQZY".equals(billsType)) {
|
|
|
+ key = "transfer.orders.approvalFlow";
|
|
|
+ } else if ("HWTG".equals(billsType)) {
|
|
|
+ key = "cargoClearance.orders.approvalFlow";
|
|
|
+ }
|
|
|
+ return sysConfigMapper.checkConfigKeyUnique(key);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询是对应仓储类型活动号
|
|
|
+ * @param billsType
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Long queryWarehouseActId (String billsType) {
|
|
|
+ long actId = 0L;
|
|
|
+ if ("SJRK".equals(billsType)) {
|
|
|
+ actId = 110L;
|
|
|
+ } else if ("SJCK".equals(billsType)) {
|
|
|
+ actId = 120L;
|
|
|
+ } else if ("CKDB".equals(billsType)) {
|
|
|
+ actId = 140L;
|
|
|
+ } else if ("HQZY".equals(billsType)) {
|
|
|
+ actId = 130L;
|
|
|
+ } else if ("HWTG".equals(billsType)) {
|
|
|
+ actId = 160L;
|
|
|
+ }
|
|
|
+ return actId;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 校验仓储主表字段是否为空
|
|
|
+ * 后续优化进入系统
|
|
|
+ * @param warehousebill
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String checkWarehouse (TWarehouseBills warehousebill) {
|
|
|
+ if (StringUtils.isNull(warehousebill.getfCorpid())) {
|
|
|
+ return "请维护主表客户信息";
|
|
|
+ }
|
|
|
+ if (StringUtils.isNull(warehousebill.getfBsdate())) {
|
|
|
+ return "请维护主表业务日期";
|
|
|
+ }
|
|
|
+ if (StringUtils.isNull(warehousebill.getfWarehouseid())) {
|
|
|
+ return "请维护主表仓库信息";
|
|
|
+ }
|
|
|
+ if (("SJRK".equals(warehousebill.getfBilltype()) || "SJCK".equals(warehousebill.getfBilltype()))
|
|
|
+ && StringUtils.isNull(warehousebill.getfFeetunit())) {
|
|
|
+ return "请维护主表业务计费单位";
|
|
|
+ }
|
|
|
+ if (("SJRK".equals(warehousebill.getfBilltype()) || "HQZY".equals(warehousebill.getfBilltype()))
|
|
|
+ && StringUtils.isNull(warehousebill.getfChargedate())) {
|
|
|
+ return "请维护主表仓储费计费日期";
|
|
|
+ }
|
|
|
+ if ("SJRK".equals(warehousebill.getfBilltype()) && StringUtils.isNull(warehousebill.getfGoodsid())) {
|
|
|
+ return "请维护主表商品信息";
|
|
|
+ }
|
|
|
+ if (!"HQZY".equals(warehousebill.getfBilltype()) && StringUtils.isNull(warehousebill.getfStorekeeper())) {
|
|
|
+ return "请维护主表仓管员信息";
|
|
|
+ }
|
|
|
+ if ("SJRK".equals(warehousebill.getfBilltype()) && StringUtils.isEmpty(warehousebill.getfMblno())) {
|
|
|
+ return "请维护主表提单号";
|
|
|
+ }
|
|
|
+ if ("CKDB".equals(warehousebill.getfBilltype()) && StringUtils.isEmpty(warehousebill.getfBusinessType())) {
|
|
|
+ return "请维护主表作业类型";
|
|
|
+ }
|
|
|
+ if (("HQZY".equals(warehousebill.getfBilltype()) || "HWTG".equals(warehousebill.getfBilltype()))
|
|
|
+ && StringUtils.isNull(warehousebill.getfTrademodeid())) {
|
|
|
+ return "请维护主表贸易方式";
|
|
|
+ }
|
|
|
+ if ("HWTG".equals(warehousebill.getfBilltype()) && StringUtils.isNull(warehousebill.getfNewTrademodeid())) {
|
|
|
+ return "请维护主表新贸易方式";
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
}
|