Browse Source

Merge remote-tracking branch 'origin/master'

master
God 7 months ago
parent
commit
c8ab27504a
  1. 7
      anrui-riskcenter-ui/src/api/deduct/deduct.js
  2. 51
      anrui-riskcenter-ui/src/views/deduct/deduct.vue
  3. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeign.java
  4. 7
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeignFallback.java
  5. 5
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyRest.java
  6. 9
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java
  7. 25
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml
  8. 22
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java
  9. 59
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java
  10. 39
      yxt-as-ui/src/router/index.js
  11. 2
      yxt-as-ui/src/views/basicinformation/sparePartsCommissionFiling/sparePartsCommissionFilingAdd.vue
  12. 2
      yxt-as-ui/src/views/basicinformation/technicalTitleFiling/technicalTitleFilingAdd.vue
  13. 2
      yxt-as-ui/src/views/client/filing/maintenanceEnterpriseAdd.vue
  14. 12
      yxt-as-ui/src/views/operation/repairbill/repairbillAdd.vue
  15. 2
      yxt-as-ui/src/views/operation/repairbill/repairbillBYLeaveFactory.vue
  16. 8
      yxt-as-ui/src/views/operation/repairbill/repairbillInfo.vue
  17. 60
      yxt-as-ui/src/views/warehouse/goodsShelves/index.vue
  18. 32
      yxt-as-ui/src/views/warehouse/warehouseArea/index.vue
  19. 2
      yxt-as-ui/src/views/workFlow/jishizhichengFlow/technicalTitleFilingEdit.vue
  20. 2
      yxt-as-ui/src/views/workFlow/peijianbeianFlow/sparePartsCommissionFilingEdit.vue
  21. 475
      yxt-as-ui/src/views/workFlow/qiankuanyuejieFlow/maintenanceEnterpriseDaiBan.vue
  22. 325
      yxt-as-ui/src/views/workFlow/qiankuanyuejieFlow/maintenanceEnterpriseEdit.vue
  23. 261
      yxt-as-ui/src/views/workFlow/qiankuanyuejieFlow/maintenanceEnterpriseYiBan.vue
  24. 14
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java
  25. 9
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillaitem/AsBusrepairBillAitem.java
  26. 39
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillaitemspec/AsBusrepairBillAitemspec.java
  27. 9
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillsitem/AsBusrepairBillSitem.java
  28. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetail.java
  29. 81
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
  30. 51
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillaitemspec/AsBusrepairBillAitemspecMapper.java
  31. 6
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillaitemspec/AsBusrepairBillAitemspecMapper.xml
  32. 45
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillaitemspec/AsBusrepairBillAitemspecRest.java
  33. 51
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillaitemspec/AsBusrepairBillAitemspecService.java
  34. 21
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java
  35. 8
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventory.java
  36. 6
      yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsSpuRest.java
  37. 9
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpuService.java
  38. 6
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SalesGoodsVo.java
  39. 2
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBill.java
  40. 44
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java
  41. 13
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbilldetail/SmsSalesBillDetail.java
  42. 91
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/wms/wmsinventory/WmsInventory.java
  43. 1
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehousearea/WmsWarehouseAreaQuery.java
  44. 18
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehousearea/WmsWarehouseAreaService.java
  45. 1
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRackQuery.java
  46. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRackService.java
  47. 8
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventory.java
  48. 18
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecord.java
  49. 19
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordDto.java
  50. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldinventory/WmsOldInventoryService.java
  51. 17
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java
  52. 33
      yxt-wms-biz/src/main/java/com/yxt/wms/feign/base/basegoodspu/BaseGoodsSpu.java
  53. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/feign/base/basegoodspu/BaseGoodsSpuFeign.java

7
anrui-riskcenter-ui/src/api/deduct/deduct.js

@ -57,6 +57,13 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
buckleVoucherRePush: function(data) {
return request({
url: '/riskcenter/v1/loanbuckleapply/buckleVoucherRePush',
method: 'post',
params: data
})
},
// 提交流程
submit: function(params) {
return request({

51
anrui-riskcenter-ui/src/views/deduct/deduct.vue

@ -122,6 +122,7 @@ import req from '@/api/deduct/deduct'
import { getStorage } from '@/utils/auth'
import deductAdd from './deductAdd'
import deductInfo from './deductInfo'
import { getButtonPermissions } from '@/api/Common/dictcommons'
export default {
name: 'Deduct',
@ -139,6 +140,13 @@ export default {
centerDialogVisible: false,
btndisabled: false,
btnList: [
{
type: 'primary',
size: 'small',
icon: '',
btnKey: 'toPush',
btnLabel: '重推'
},
{
type: 'danger',
size: 'small',
@ -165,7 +173,7 @@ export default {
//
listQuery: {
current: 1,
size: 10,
size: 5,
total: 0,
params: {
applyName: '',
@ -189,7 +197,18 @@ export default {
mounted() {
// vuewindowpostMessagehandleMessage
window.addEventListener('message', this.handleMessage)
this.$refs['btnbar'].setButtonList(this.btnList)
getButtonPermissions({ userSid: window.sessionStorage.getItem('userSid'), url: this.$route.path, type: 0 }).then((res) => {
if (res.success) {
for (var i = 0; i < res.data.length; i++) {
for (var k = 0; k < this.btnList.length; k++) {
if (res.data[i].buttonId === this.btnList[k].btnKey) {
this.btnList.splice(k, 1)
}
}
}
this.$refs['btnbar'].setButtonList(this.btnList)
}
})
},
methods: {
async handleMessage(event) {
@ -232,6 +251,9 @@ export default {
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toPush':
this.toPush()
break
case 'doDel':
this.doDel()
break
@ -282,7 +304,7 @@ export default {
handleReset() {
this.listQuery = {
current: 1,
size: 10,
size: 5,
total: 0,
params: {
applyName: '',
@ -307,6 +329,29 @@ export default {
this.viewState = 4
this.$refs['divInfo'].showInfo(row)
},
toPush() {
if (this.sids.length === 1) {
const loading = this.$loading({
lock: true,
text: '数据推送中',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.buckleVoucherRePush({ sid: this.sids[0] }).then((resp) => {
if (resp.success) {
loading.close()
this.$message({ showClose: true, type: 'success', message: '重推成功' })
this.getList()
} else {
loading.close()
}
}).catch(() => {
loading.close()
})
} else {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行重推操作' })
}
},
//
doDel() {
if (this.sids.length === 0) {

5
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeign.java

@ -58,6 +58,9 @@ public interface LoanBuckleApplyFeign {
@PostMapping("/buckleExport")
public void buckleExport(@RequestParam("sid") String sid);
@ApiOperation("财务凭证重推")
@PostMapping("/buckleVoucherRePush")
public ResultBean buckleVoucherRePush(@RequestParam("sid") String sid);
@ApiOperation("批量删除")
@ -109,4 +112,4 @@ public interface LoanBuckleApplyFeign {
@ResponseBody
ResultBean<AppBuckleDetailsVo> appDetail(@PathVariable("sid") String sid);
}
}

7
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbuckleapply/LoanBuckleApplyFeignFallback.java

@ -46,6 +46,11 @@ public class LoanBuckleApplyFeignFallback implements LoanBuckleApplyFeign {
}
@Override
public ResultBean buckleVoucherRePush(String sid) {
return null;
}
@Override
public ResultBean deleteBySids(String[] sids) {
return null;
@ -100,4 +105,4 @@ public class LoanBuckleApplyFeignFallback implements LoanBuckleApplyFeign {
public ResultBean<AppBuckleDetailsVo> appDetail(String sid) {
return null;
}
}
}

5
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyRest.java

@ -75,6 +75,11 @@ public class LoanBuckleApplyRest implements LoanBuckleApplyFeign {
ExportExcelUtils.export(fileNameURL, records, BuckleExportVo.class, response);
}
@Override
public ResultBean buckleVoucherRePush(String sid) {
return loanBuckleApplyService.buckleVoucherRePush(sid);
}
@Override
public ResultBean deleteBySids(String[] sids) {
return loanBuckleApplyService.deleteBySids(sids);

9
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbuckleapply/LoanBuckleApplyService.java

@ -1448,4 +1448,13 @@ public class LoanBuckleApplyService extends MybatisBaseService<LoanBuckleApplyMa
}
return recordList;
}
public ResultBean buckleVoucherRePush(String sid) {
ResultBean rb = ResultBean.fireFail();
//推送划扣凭证
pushBuckleVoucher(sid);
//推送转累欠凭证
pushLaterBuckleVoucher(sid);
return rb.success();
}
}

25
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml

@ -125,31 +125,6 @@
FROM
loan_repayment_plan_details AS p
) AS t ON p.sid = t.sid) as m
-- SELECT
-- h.sid,
-- p.loanContractNo,
-- p.vinNo,
-- p.bankContractNo,
-- p.bankName,
-- p.customer,
-- p.period,
-- p.borrowerName,
-- p.dueDate,
-- p.dueMoney,
-- h.actualDate,
-- date_format(h.dataTime, '%Y-%m-%d') as dataTime,
-- h.actualMoney,
-- h.buckle,
-- h.returnWay,
-- h.planDetailSid,
-- CASE h.updateState
-- WHEN '0' THEN '未更新'
-- WHEN '1' THEN '已更新'
-- END AS updateState,
-- date_format(h.updateTime, '%Y-%m-%d') as updateTime
-- FROM
-- loan_repayment_history AS h
-- LEFT JOIN loan_repayment_plan_details AS p ON h.planDetailSid = p.sid
<where>
${ew.sqlSegment}
</where>

22
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java

@ -573,31 +573,11 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
);
if (StringUtils.isNotBlank(pagerQuery.getChange())) {
if (pagerQuery.getChange().equals("1")) {
qw.apply("((SELECT l.vehCount FROM anrui_buscenter.bus_sales_order_loancontract as l WHERE l.loanContractNo = m.loanContractNo and l.isDelete = 0) > 1 and m.outstandingMoney != m.actualMoney and returnWay = '直还')");
qw.apply("((SELECT IFNULL(SUM(vehCount),0) FROM loan_repayment_schedule as s WHERE s.bankContractNo = m.bankContractNo and s.isDelete = 0) > 1 and m.outstandingMoney != m.actualMoney and returnWay = '直还')");
}
}
qw.orderByDesc("m.dataTime");
IPage<LoanRepaymentHistoryVo> pagging = baseMapper.monthListPage(page, qw);
// List<LoanRepaymentHistoryVo> records = pagging.getRecords();
// records.removeAll(Collections.singleton(null));
// if (!records.isEmpty()) {
// for (LoanRepaymentHistoryVo record : records) {
// String planDetailSid = record.getPlanDetailSid();
// List<LoanRepaymentHistory> histories = baseMapper.selByPlanSid(planDetailSid);
// BigDecimal returned = new BigDecimal(0);
// if (!histories.isEmpty()) {
// for (LoanRepaymentHistory history : histories) {
// returned = history.getActualMoney().add(returned);
// }
// }
// LoanRepaymentPlanDetails loanRepaymentPlanDetails = loanRepaymentPlanDetailsService.fetchBySid(record.getPlanDetailSid());
// if (null != loanRepaymentPlanDetails) {
// BigDecimal dueMoney = loanRepaymentPlanDetails.getDueMoney();
// BigDecimal subtract = dueMoney.subtract(returned);
// record.setOutstandingMoney(String.valueOf(subtract));
// }
// }
// }
PagerVo<LoanRepaymentHistoryVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}

59
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java

@ -879,11 +879,15 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
BigDecimal rate2 = new BigDecimal("0.144"); //利率14.4%
BigDecimal fund = BigDecimal.ZERO; //减免后的占用费年利率
BigDecimal fundJm = BigDecimal.ZERO; //减免后的占用费年利率
BigDecimal depositJZ = BigDecimal.ZERO; //结转贷款保证金
LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(businessSid);
if (null != companyCost) {
if (null != companyCost.getFunfCost()) {
fund = companyCost.getFunfCost();
}
if (null != companyCost.getLoanDeposit()) {
depositJZ = companyCost.getLoanDeposit();
}
}
LoanSettleCompanyReduction reduction2 = loanSettleCompanyReductionService.selectByMainSid(businessSid);
if (null != reduction2) {
@ -949,8 +953,14 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
reliefMoney(loanSettleApply);
if (amountTo.compareTo(BigDecimal.ZERO) <= 0) {
//减免后结清合计 <= 0
//结转剩余保证金
carryForward(loanSettleApply);
int check = 0;// 0不推抵顶保证金凭证 1推送
//结清合计 + 贷款保证金结转金额
BigDecimal add = amountTo.add(depositJZ);
if (add.compareTo(BigDecimal.ZERO) > 0) {
//结转剩余保证金
carryForward(loanSettleApply);
check = 1;
}
//设置结清申请的“客户结清确认”状态为是
loanSettleApply.setState(1);
//更新车辆表结清状态
@ -960,7 +970,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
//设置认款月还为已转付
updatePaymentStateByBusVinSid(loanSettleApply.getBusVinSid());
//推送财务凭证
pushSettleVoucher(loanSettleApply);
pushSettleVoucher(loanSettleApply,check);
}
baseMapper.updateById(loanSettleApply);
} else {
@ -1153,9 +1163,6 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
private void carryForward(LoanSettleApply loanSettleApply) {
String userSid = loanSettleApply.getCreateBySid();
BigDecimal deposit = BigDecimal.ZERO; // 贷款保证金 - (扣罚金额-贷款保证金减免)
// BigDecimal depositKF = BigDecimal.ZERO; // 贷款保证金 - (扣罚金额-贷款保证金减免)
// BigDecimal depositJM = BigDecimal.ZERO; // 贷款保证金 - (扣罚金额-贷款保证金减免)
// BigDecimal amountTo = BigDecimal.ZERO; // 资方结清合计
String busVinSid = loanSettleApply.getBusVinSid();
List<LoanRepaymentHistory> histories = new ArrayList<>();//还款记录
List<LoanRepaymentPlanDetails> updatePsList = new ArrayList<>();//还款计划明细集合
@ -1172,24 +1179,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
if (null != companyCost.getLoanDeposit()) {
deposit = companyCost.getLoanDeposit();
}
// if (null != companyCost.getDeductionAmount()) {
// depositKF = companyCost.getDeductionAmount();
// }
}
// LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(loanSettleApply.getSid());
// if (null != reduction) {
// if (null != reduction.getDepositPenalty()) {
// depositJM = reduction.getDepositPenalty();
// }
// if (null != reduction.getAmountTo()) {
// amountTo = reduction.getAmountTo();
// }
// }
// if (amountTo.compareTo(BigDecimal.ZERO) > 0) {
// deposit = deposit.subtract(depositKF).add(depositJM);
// } else if (amountTo.compareTo(BigDecimal.ZERO) <= 0) {
// deposit = deposit.subtract(depositKF).add(depositJM).add(amountTo);
// }
//按照顺序结转
//月还
if (deposit.compareTo(BigDecimal.ZERO) > 0) {
@ -1639,7 +1629,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
}
//--------推送财务结清凭证------------------
private void pushSettleVoucher(LoanSettleApply loanSettleApply) {
private void pushSettleVoucher(LoanSettleApply loanSettleApply,int check) {
String sid = loanSettleApply.getSid();
LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(sid);
LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(sid);
@ -1753,14 +1743,16 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
voucherDetails.add(voucherDetail);
}
//剩余贷款保证金结转
if (sybzj.compareTo(BigDecimal.ZERO) > 0) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setSceneCode("剩余贷款保证金结转");
voucherDetail.setBankName(planDetails.getBankName());
voucherDetail.setDeptCode(deptCode);
voucherDetail.setCustomerCode(customerNumber);
voucherDetail.setAmount(sybzj);
voucherDetails.add(voucherDetail);
if (check == 1) {
if (sybzj.compareTo(BigDecimal.ZERO) > 0) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setSceneCode("剩余贷款保证金结转");
voucherDetail.setBankName(planDetails.getBankName());
voucherDetail.setDeptCode(deptCode);
voucherDetail.setCustomerCode(customerNumber);
voucherDetail.setAmount(sybzj);
voucherDetails.add(voucherDetail);
}
}
//贷款保证金扣罚
if (bzjKFCw.compareTo(BigDecimal.ZERO) > 0) {
@ -2882,6 +2874,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
}
loanSettleApply.setState(1);
baseMapper.updateById(loanSettleApply);
//结转剩余保证金
carryForward(loanSettleApply);
//更新车辆表结清状态
baseMapper.updateBus(loanSettleApply.getBusVinSid(), "1");
@ -2890,7 +2883,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
//设置认款月还为已转付
updatePaymentStateByBusVinSid(loanSettleApply.getBusVinSid());
//推送财务凭证
pushSettleVoucher(loanSettleApply);
pushSettleVoucher(loanSettleApply,1);
return rb.success();
}

39
yxt-as-ui/src/router/index.js

@ -1045,21 +1045,21 @@ export const constantRoutes = [{
import('@/views/workFlow/suopeikaipiaoFlow/claimbillingYiBan.vue'),
name: 'ClaimBillingYiBan'
},
// 单索赔调整--编辑
// 维修单索赔调整--编辑
{
path: '/suopeitiaozhengFlow/claimadjustmentEdit',
component: () =>
import('@/views/workFlow/suopeitiaozhengFlow/claimadjustmentEdit.vue'),
name: 'ClaimAdjustmentEdit'
},
// 单索赔调整--待办
// 维修单索赔调整--待办
{
path: '/suopeitiaozhengFlow/claimadjustmentDaiBan',
component: () =>
import('@/views/workFlow/suopeitiaozhengFlow/claimadjustmentDaiBan.vue'),
name: 'ClaimAdjustmentDaiBan'
},
// 单索赔调整--已办
// 维修单索赔调整--已办
{
path: '/suopeitiaozhengFlow/claimadjustmentYiBan',
component: () =>
@ -1087,42 +1087,42 @@ export const constantRoutes = [{
import('@/views/workFlow/adjustmentFlow/adjustmentYiBan.vue'),
name: 'AdjustmentYiBan'
},
// 保外工单开票申请管理--编辑
// (保外)维修单开票申请管理--编辑
{
path: '/gongdankaipiaoFlow/workorderinvoicingEdit',
component: () =>
import('@/views/workFlow/gongdankaipiaoFlow/workorderinvoicingEdit.vue'),
name: 'WorkOrderInvoicingEdit'
},
// 保外工单开票申请管理--待办
// (保外)维修单开票申请管理--待办
{
path: '/gongdankaipiaoFlow/workorderinvoicingDaiBan',
component: () =>
import('@/views/workFlow/gongdankaipiaoFlow/workorderinvoicingDaiBan.vue'),
name: 'WorkOrderInvoicingDaiBan'
},
// 保外工单开票申请管理--已办
// (保外)维修单开票申请管理--已办
{
path: '/gongdankaipiaoFlow/workorderinvoicingYiBan',
component: () =>
import('@/views/workFlow/gongdankaipiaoFlow/workorderinvoicingYiBan.vue'),
name: 'WorkOrderInvoicingYiBan'
},
// 保外工单应收调差申请管理--编辑
// (保外)维修单应收调差申请管理--编辑
{
path: '/gongdanyingshouFlow/workorderreceivableEdit',
component: () =>
import('@/views/workFlow/gongdanyingshouFlow/workorderreceivableEdit.vue'),
name: 'WorkOrderReceivableEdit'
},
// 保外工单应收调差申请管理--待办
// (保外)维修单应收调差申请管理--待办
{
path: '/gongdanyingshouFlow/workorderreceivableDaiBan',
component: () =>
import('@/views/workFlow/gongdanyingshouFlow/workorderreceivableDaiBan.vue'),
name: 'WorkOrderReceivableDaiBan'
},
// 保外工单应收调差申请管理--已办
// (保外)维修单应收调差申请管理--已办
{
path: '/gongdanyingshouFlow/workorderreceivableYiBan',
component: () =>
@ -1277,6 +1277,27 @@ export const constantRoutes = [{
import('@/views/workFlow/didingpeijianFlow/topFittingYiBan.vue'),
name: 'TopFittingYiBan'
},
// 欠款月结客户备案 -- 编辑
{
path: '/qiankuanyuejieFlow/maintenanceEnterpriseEdit',
component: () =>
import('@/views/workFlow/qiankuanyuejieFlow/maintenanceEnterpriseEdit.vue'),
name: 'MaintenanceEnterpriseEdit'
},
// 欠款月结客户备案 -- 待办
{
path: '/qiankuanyuejieFlow/maintenanceEnterpriseDaiBan',
component: () =>
import('@/views/workFlow/qiankuanyuejieFlow/maintenanceEnterpriseDaiBan.vue'),
name: 'MaintenanceEnterpriseDaiBan'
},
// 欠款月结客户备案 -- 已办
{
path: '/qiankuanyuejieFlow/maintenanceEnterpriseYiBan',
component: () =>
import('@/views/workFlow/qiankuanyuejieFlow/maintenanceEnterpriseYiBan.vue'),
name: 'MaintenanceEnterpriseYiBan'
},
// 404 page must be placed at the end !!!
// { path: '*', redirect: '/404', hidden: true }
]

2
yxt-as-ui/src/views/basicinformation/sparePartsCommissionFiling/sparePartsCommissionFilingAdd.vue

@ -5,7 +5,7 @@
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled">提交</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>

2
yxt-as-ui/src/views/basicinformation/technicalTitleFiling/technicalTitleFilingAdd.vue

@ -5,7 +5,7 @@
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled">提交</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>

2
yxt-as-ui/src/views/client/filing/maintenanceEnterpriseAdd.vue

@ -5,7 +5,7 @@
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled">提交</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>

12
yxt-as-ui/src/views/operation/repairbill/repairbillAdd.vue

@ -30,7 +30,7 @@
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>维修单类型</div>
<el-form-item prop="billType">
<el-select class="addinputInfo" v-model="formobj.billType" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" placeholder="请选择" @change="billTypeChange" clearable filterable>
@ -38,7 +38,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<div class="span-sty"><span class="icon">*</span>科目</div>
<el-form-item prop="subject">
<el-select class="addinputInfo" :disabled="formobj.sitemVos.length > 0 || formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.subject" placeholder="请选择" @change="changeSubject" clearable filterable>
@ -46,7 +46,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="6">
<div class="span-sty">索赔厂家</div>
<el-form-item>
<el-select class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.claimManufacturer" placeholder="请选择" @change="changeClaimManufacturer" clearable filterable>
@ -54,11 +54,11 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="6">
<div class="span-sty">索赔类型</div>
<el-form-item>
<el-select class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.shClaimTypeKey" placeholder="请选择" @change="changeShClaimType" clearable filterable>
<el-option v-for="item in shClaimType_list" :key="item.dictKey" :label="item.dictKey" :value="item.dictKey"></el-option>
<el-option v-for="item in shClaimType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
</el-col>
@ -959,7 +959,7 @@ export default {
this.otherSettle_list = res.data
}
})
typeValues({ type: 'shClaimType' }).then((res) => {
typeValues({ type: 'sh_claim_type' }).then((res) => {
if (res.success) {
this.shClaimType_list = res.data
}

2
yxt-as-ui/src/views/operation/repairbill/repairbillBYLeaveFactory.vue

@ -439,7 +439,7 @@ export default {
},
leaveFactory() {
if (this.sids.length === 1) {
if (this.multipleSelection[0].subject === '保外' && this.multipleSelection[0].outDoorState === '0') {
if (this.multipleSelection[0].subject === '保外' && this.multipleSelection[0].isOutFactory === '否') {
arrearsleavefactory.init(this.sids[0]).then((res) => {
if (res.success) {
this.viewState = 5

8
yxt-as-ui/src/views/operation/repairbill/repairbillInfo.vue

@ -25,19 +25,19 @@
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-col :span="6">
<div class="span-sty">维修单类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.billType }}</span></el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<div class="span-sty">科目</div>
<el-form-item><span class="addinputInfo">{{ formobj.subject }}</span></el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="6">
<div class="span-sty">索赔厂家</div>
<el-form-item><span class="addinputInfo">{{ formobj.claimManufacturer }}</span></el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="6">
<div class="span-sty">索赔类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.shClaimTypeValue }}</span></el-form-item>
</el-col>

60
yxt-as-ui/src/views/warehouse/goodsShelves/index.vue

@ -22,6 +22,12 @@
:value="item.sid" />
</el-select>
</el-form-item>
<el-form-item label="所属区域">
<el-select v-model="queryParams.params.zoneSid" placeholder="所属区域" @change="selectWarehouseZoneChange">
<el-option v-for="item in warehouseZoneList" :key="item.sid" :label="item.zoneName"
:value="item.sid" />
</el-select>
</el-form-item>
<el-form-item label="所属库区">
<el-select v-model="queryParams.params.warehouseAreaName" placeholder="所属库区"
class="addinputw addinputInfo" @change="selectWrehouseAreaChange">
@ -86,6 +92,7 @@
import req from '@/api/warehouse/goodsShelves.js'
import req2 from '@/api/warehouse/warehouse.js'
import req3 from '@/api/warehouse/warehouseArea.js'
import req4 from '@/api/warehouse/warehouseZone.js'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
@ -145,9 +152,12 @@
warehouseAreaName: '',
warehouseSid: '',
warehouseName: '',
zoneSid: '',
zoneName: '',
}
},
warehouseList: [],
warehouseZoneList: [],
warehouseAreaList: [],
sids: [],
selectionList: []
@ -181,14 +191,6 @@
this.warehouseList = resp.data
}).catch(() => {})
},
getWarehouseArea(sid) {
this.queryParams.params.areaTypeSid = ''
this.queryParams.params.warehouseAreaName = ''
req3.getAllWarehouseareaBysid(sid).then(resp => {
console.log('>>>>>>>>>getAllWarehousearea', resp)
this.warehouseAreaList = resp.data
}).catch(() => {})
},
selectWarehouseChange(val) {
@ -197,10 +199,48 @@
this.queryParams.params.warehouseSid = choose[0].sid
this.queryParams.params.warehouseName = choose[0].warehouseName
this.queryParams.params.zoneSid = ''
this.queryParams.params.zoneName = ''
this.queryParams.params.areaTypeSid = ''
this.queryParams.params.warehouseAreaName = ''
this.getAllWarehousezone(choose[0].sid)
},
getAllWarehousezone(sid) {
req4.getAllWarehousezoneBysid({
ckSid: sid
}).then(resp => {
this.warehouseZoneList = resp.data
})
},
selectWarehouseZoneChange(val) {
const choose = this.warehouseZoneList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseZoneChange', choose)
this.queryParams.params.zoneSid = choose[0].sid
this.queryParams.params.zoneName = choose[0].zoneName
this.queryParams.params.areaTypeSid = ''
this.queryParams.params.warehouseAreaName = ''
this.getWarehouseArea(choose[0].sid)
},
getWarehouseArea(sid) {
req3.getAllWarehouseareaByZoneSid({
qySid: sid
}).then(resp => {
console.log('>>>>>>>>>getAllWarehousearea', resp)
this.warehouseAreaList = resp.data
}).catch(() => {})
},
selectWrehouseAreaChange(val) {
const choose = this.warehouseAreaList.filter((item) => item.sid == val)
@ -273,10 +313,14 @@
size: 10,
total: 0,
params: {
name: '',
caode: '',
areaTypeSid: '',
warehouseAreaName: '',
warehouseSid: '',
warehouseName: '',
zoneSid: '',
zoneName: '',
}
}
this.loadList()

32
yxt-as-ui/src/views/warehouse/warehouseArea/index.vue

@ -31,6 +31,13 @@
</el-select>
</el-form-item>
<el-form-item label="所属区域">
<el-select v-model="queryParams.params.zoneSid" placeholder="所属区域" @change="selectWarehouseZoneChange">
<el-option v-for="item in warehouseZoneList" :key="item.sid" :label="item.zoneName"
:value="item.sid" />
</el-select>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
@ -88,6 +95,7 @@
import req from '@/api/warehouse/warehouseArea.js'
import req2 from '@/api/warehouse/warehouse.js'
import req3 from '@/api/warehouse/warehouseAreaType.js'
import req4 from '@/api/warehouse/warehouseZone.js'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
@ -147,9 +155,12 @@
warehouseAreaTypeName: '',
warehouseSid: '',
warehouseName: '',
zoneSid: '',
zoneName: '',
}
},
warehouseList: [],
warehouseZoneList: [],
warehouseAreaTypeLsit: [],
sids: [],
selectionList: []
@ -203,6 +214,25 @@
this.queryParams.params.warehouseSid = choose[0].sid
this.queryParams.params.warehouseName = choose[0].warehouseName
this.queryParams.params.zoneSid = ''
this.queryParams.params.zoneName = ''
this.getAllWarehousezone(choose[0].sid)
},
getAllWarehousezone(sid) {
req4.getAllWarehousezoneBysid({
ckSid: sid
}).then(resp => {
this.warehouseZoneList = resp.data
})
},
selectWarehouseZoneChange(val) {
const choose = this.warehouseZoneList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseZoneChange', choose)
this.queryParams.params.zoneSid = choose[0].sid
this.queryParams.params.zoneName = choose[0].zoneName
},
selectWrehouseAreaTypeChange(val) {
@ -283,6 +313,8 @@
warehouseAreaTypeName: '',
warehouseSid: '',
warehouseName: '',
zoneSid: '',
zoneName: '',
}
}
this.loadList()

2
yxt-as-ui/src/views/workFlow/jishizhichengFlow/technicalTitleFilingEdit.vue

@ -5,7 +5,7 @@
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled">提交</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交</el-button>
</div>
</div>
<div class="">

2
yxt-as-ui/src/views/workFlow/peijianbeianFlow/sparePartsCommissionFilingEdit.vue

@ -5,7 +5,7 @@
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled">提交</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交</el-button>
</div>
</div>
<div class="">

475
yxt-as-ui/src/views/workFlow/qiankuanyuejieFlow/maintenanceEnterpriseDaiBan.vue

@ -0,0 +1,475 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" @click="openCountersign('加签')"> </el-button>
<el-button type="primary" size="small" @click="openAgree('同意')"> </el-button>
<el-button type="danger" size="small" @click="openReject('驳回')"> </el-button>
<el-button type="danger" size="small" @click="openStop('终止')"> </el-button>
</div>
</div>
<div class="">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title">基础信息</div>
<el-row>
<el-col :span="12">
<div class="span-sty">客户名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.customerName }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">客户类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.customerType }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">联系电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.mobile }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">微信号</div>
<el-form-item><span class="addinputInfo">{{ formobj.weixin }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">客户地址</div>
<el-form-item><span class="addinputInfo">{{ formobj.province }}{{ formobj.city }}{{ formobj.county }}{{ formobj.address }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">证件类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.certificateType }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">证件号码</div>
<el-form-item><span class="addinputInfo">{{ formobj.idnumber }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">证件有效期</div>
<el-form-item><span class="addinputInfo">{{ formobj.endDate }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">电子邮箱</div>
<el-form-item><span class="addinputInfo">{{ formobj.e_mail }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">紧急联系人</div>
<el-form-item><span class="addinputInfo">{{ formobj.emergencyContact }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">紧急联系电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.emergencyMobile }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">备案有效期</div>
<el-form-item><span class="addinputInfo">{{ formobj.filingIndate }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">附件</div>
<el-form-item><el-image class="addinputInfo" style="width: 150px;height: 150px" v-for="(item, index) in formobj.files" :key="index" :src="item" :preview-src-list="formobj.files" /></el-form-item>
</el-col>
</el-row>
<div class="title">对接人信息<span v-if="formobj.filingType == '补充'">(已备{{ formobj.readyStrength }})</span></div>
<el-table :key="abutmentKey" :data="formobj.contactPerson" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="name" label="姓名" align="center" min-width="200" />
<el-table-column prop="mobile" label="电话" align="center" min-width="200" />
<el-table-column prop="remarks" label="备注" align="center" min-width="200" />
</el-table>
<div class="title">车辆信息<span v-if="formobj.filingType == '补充'">(已备{{ formobj.readyVehicle }})</span></div>
<el-table :key="carKey" :data="formobj.carList" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="vehMark" label="车牌号" align="center" min-width="200" />
<el-table-column prop="vinNo" label="车架号" align="center" min-width="200" />
<el-table-column prop="buyDate" label="购买日期" align="center" min-width="200" />
</el-table>
</el-form>
</div>
</div>
<!-- 选择待办人 的弹出框-->
<el-dialog title="填写审批意见" :visible.sync="nodeDialogVisible" width="80%">
<el-form class="formadd" >
<el-row v-show="countersignLink" style="border-top: 1px solid #e0e3eb">
<el-col :span="4" class="tleftb">
<span class="icon">*</span>加签人员:
</el-col>
<el-col :span="20">
<el-form-item>
<el-select v-model="countersign.assignee" placeholder="请选择" filterable>
<el-option v-for="item in options" :key="item.userSid" :label="item.staffName" :value="item.userSid">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="currentLink" style="border-top: 1px solid #e0e3eb">
<el-col :span="4" class="tleftb">
<span>当前环节:</span>
</el-col>
<el-col :span="20">
<el-form-item><span>{{ current.taskName }}->{{ nextNode.name }}</span></el-form-item>
</el-col>
</el-row>
<el-row :class="{rowClass:!currentLink}">
<el-col :span="4" class="tleftb">
<span>意见:</span>
</el-col>
<el-col :span="20">
<el-form-item><el-input size="small" v-model="dialogList.comment" placeholder="审批意见" class="addinputw" type="textarea" :autosize="{ minRows: 1, maxRows: 10}" clearable ></el-input></el-form-item>
</el-col>
</el-row>
<div style="text-align:center;margin-top: 20px;">
<el-button type="primary" size="mini" @click="reject"> </el-button>
<el-button type="info " size="mini" @click="nodeDialogVisible = false"> </el-button>
</div>
</el-form>
</el-dialog>
</div>
</template>
<script>
import req from '@/api/client/maintenanceEnterprise'
import { selectStaffListss } from '@/api/Common/dictcommons'
export default {
name: 'MaintenanceEnterpriseDaiBan',
data() {
return {
viewTitle: '',
viewState: 1,
abutmentKey: 1,
carKey: 2,
index: 0,
formobj: {
customerName: '',
customerSid: '',
customerType: '',
customerTypeKey: '',
mobile: '',
weixin: '',
province: '',
city: '',
county: '',
address: '',
certificateType: '',
certificateTypeKey: '',
idnumber: '',
endDate: '',
e_mail: '',
emergencyContact: '',
emergencyMobile: '',
filingIndate: '',
filingType: '', //
remarks: '',
createByName: '',
createBySid: '',
createOrgName: '',
createOrgSid: '',
createTime: '',
deptName: '',
deptSid: '',
instanceId: '',
sid: '',
taskId: '',
useOrgName: '',
useOrgSid: '',
readyStrength: '',
readyVehicle: '',
files: [],
contactPerson: [],
carList: []
},
rules: {},
options: [],
operation: '', //
dialogList: {
comment: ''
},
startTask: true,
current: {
taskDefKey: '',
taskName: '' //
},
nextNode: {}, //
nodeDialogVisible: false,
currentLink: true,
countersignLink: false,
//
linkByParameter: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
orgSidPath: '',
taskDefKey: '',
userSid: ''
},
//
countersign: {
taskId: '',
assignee: '',
userSid: '',
instanceId: '',
views: ''
}
}
},
created() {
console.log('url:' + window.location.href)
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
console.log('iframe页面获取的obj:', obj)
//
this.linkByParameter.businessSid = obj.businessSid
this.linkByParameter.instanceId = obj.instanceId
this.linkByParameter.taskId = obj.taskId
this.linkByParameter.taskDefKey = obj.taskDefKey
// this.linkByParameter.orgSidPath = window.sessionStorage.getItem('orgSidPath')
this.linkByParameter.userSid = window.sessionStorage.getItem('userSid')
this.current.taskDefKey = obj.taskDefKey
this.current.taskName = obj.taskName
//
this.countersign.taskId = obj.taskId
this.countersign.userSid = window.sessionStorage.getItem('userSid')
this.countersign.instanceId = obj.instanceId
//
this.showInfo(obj.businessSid)
},
mounted() {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 500 + 'px'
}
}, '*')
},
methods: {
showInfo(sid) {
this.viewTitle = '欠款月结客户备案申请详情'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchDetailsBySid(sid).then((res) => {
if (res.success) {
this.formobj = res.data
if (this.formobj.files.length > 0) {
const aa = []
this.formobj.files.forEach((e) => {
aa.push(e.url)
})
this.formobj.files = aa
}
}
})
selectStaffListss().then((res) => {
if (res.success) {
this.options = res.data
}
})
},
//
openCountersign(val) {
this.operation = val
this.currentLink = true
this.countersignLink = true
this.dialogList.comment = ''
req.getNextNodesForSubmit({ taskDefKey: this.current.taskDefKey, businessSid: this.linkByParameter.businessSid }).then((resp) => {
if (resp.success) {
var arr = resp.data
this.nextNode = arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
})
},
//
openAgree(val) {
this.operation = val
this.currentLink = true
this.countersignLink = false
this.dialogList.comment = '同意'
req.getNextNodesForSubmit({ taskDefKey: this.current.taskDefKey, businessSid: this.linkByParameter.businessSid }).then((resp) => {
if (resp.success) {
var arr = resp.data
this.nextNode = arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
})
},
//
openReject(val) {
this.operation = val
this.currentLink = true
this.countersignLink = false
this.dialogList.comment = ''
req.getPreviousNodesForReject({ taskDefKey: this.current.taskDefKey, businessSid: this.linkByParameter.businessSid }).then((resp) => {
if (resp.success) {
var arr = resp.data
this.nextNode = arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
})
},
//
openStop(val) {
this.operation = val
this.currentLink = false
this.countersignLink = false
this.dialogList.comment = ''
this.nodeDialogVisible = true
},
reject() {
if (this.operation === '同意') {
this.handleAgree()
} else if (this.operation === '驳回') {
if (this.dialogList.comment === '') {
this.$message({ showClose: true, type: 'error', message: '请填写审批意见' })
} else {
this.handleReject()
}
} else if (this.operation === '终止') {
if (this.dialogList.comment === '') {
this.$message({ showClose: true, type: 'error', message: '请填写审批意见' })
} else {
this.handleStop()
}
} else if (this.operation === '加签') {
this.handleCountersign()
}
},
/** 加签 */
handleCountersign() {
if (this.countersign.assignee === '') {
this.$message({ showClose: true, type: 'error', message: '请选择加签人员' })
return
}
if (this.dialogList.comment === '') {
this.$message({ showClose: true, type: 'error', message: '请填写审批意见' })
return
}
this.countersign.views = this.dialogList.comment
req.delegate(this.countersign).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
/** 同意任务 */
handleAgree() {
this.linkByParameter.comment = this.dialogList.comment
req.complete(this.linkByParameter).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
/** 驳回任务 */
handleReject() {
this.linkByParameter.comment = this.dialogList.comment
req.reject(this.linkByParameter).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
/** 终止任务 */
handleStop() {
this.linkByParameter.comment = this.dialogList.comment
req.breakProcess(this.linkByParameter).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.rowClass{
border-top: 1px solid #E0E3EB;
}
</style>

325
yxt-as-ui/src/views/workFlow/qiankuanyuejieFlow/maintenanceEnterpriseEdit.vue

@ -0,0 +1,325 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交</el-button>
</div>
</div>
<div class="">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title">基础信息</div>
<el-row>
<el-col :span="12">
<div class="span-sty">客户名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.customerName }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">客户类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.customerType }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">联系电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.mobile }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">微信号</div>
<el-form-item><span class="addinputInfo">{{ formobj.weixin }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">客户地址</div>
<el-form-item><span class="addinputInfo">{{ formobj.province }}{{ formobj.city }}{{ formobj.county }}{{ formobj.address }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">证件类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.certificateType }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">证件号码</div>
<el-form-item><span class="addinputInfo">{{ formobj.idnumber }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">证件有效期</div>
<el-form-item><span class="addinputInfo">{{ formobj.endDate }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">电子邮箱</div>
<el-form-item><span class="addinputInfo">{{ formobj.e_mail }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">紧急联系人</div>
<el-form-item><span class="addinputInfo">{{ formobj.emergencyContact }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">紧急联系电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.emergencyMobile }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">备案有效期</div>
<el-form-item><el-date-picker class="addinputInfo" v-model="formobj.filingIndate" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期" /></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">备注</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.remarks" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">附件</div>
<el-form-item>
<uploadImg ref="uploadImg" class="addinputInfo" v-model="formobj.files" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/>
</el-form-item>
</el-col>
</el-row>
<div class="title">对接人信息<span v-if="formobj.filingType == '补充'">(已备{{ formobj.readyStrength }})</span></div>
<el-table :key="abutmentKey" :data="formobj.contactPerson" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column align="center" width="80">
<template slot="header" slot-scope="scope">
<i class="add-btn-icon el-icon-plus" style="color: red;font-size:20px" @click="abutmentAdd(scope.row)"></i>
</template>
<template slot-scope="scope">
<i class="el-icon-delete" @click="abutmentDelete(scope.$index)"></i>
</template>
</el-table-column>
<el-table-column label="姓名" align="center" min-width="200">
<template slot-scope="scope">
<el-input v-model="scope.row.name" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="电话" align="center" min-width="200">
<template slot-scope="scope">
<el-input v-model="scope.row.mobile" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="备注" align="center" min-width="200">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" clearable placeholder="" />
</template>
</el-table-column>
</el-table>
<div class="title">车辆信息<span v-if="formobj.filingType == '补充'">(已备{{ formobj.readyVehicle }})</span></div>
<el-table :key="carKey" :data="formobj.carList" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column align="center" width="80">
<template slot="header" slot-scope="scope">
<i class="add-btn-icon el-icon-plus" style="color: red;font-size:20px" @click="carAdd(scope.row)"></i>
</template>
<template slot-scope="scope">
<i class="el-icon-delete" @click="carDelete(scope.$index)"></i>
</template>
</el-table-column>
<el-table-column label="车牌号" align="center" min-width="200">
<template slot-scope="scope">
<el-input v-model="scope.row.vehMark" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="车架号" align="center" min-width="200">
<template slot-scope="scope">
<el-input v-model="scope.row.vinNo" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="购买日期" align="center" min-width="200">
<template slot-scope="scope">
<el-date-picker v-model="scope.row.buyDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期" />
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/client/maintenanceEnterprise'
import uploadImg from '@/components/uploadFile/uploadImg'
import { fetchBySid, getOrgSidByPath } from '@/api/Common/dictcommons'
export default {
name: 'MaintenanceEnterpriseEdit',
components: {
uploadImg
},
data() {
return {
viewTitle: '',
viewState: 1,
submitdisabled: false,
abutmentKey: 1,
carKey: 2,
index: 0,
formobj: {
customerName: '',
customerSid: '',
customerType: '',
customerTypeKey: '',
mobile: '',
weixin: '',
province: '',
city: '',
county: '',
address: '',
certificateType: '',
certificateTypeKey: '',
idnumber: '',
endDate: '',
e_mail: '',
emergencyContact: '',
emergencyMobile: '',
filingIndate: '',
filingType: '', //
remarks: '',
createByName: '',
createBySid: '',
createOrgName: '',
createOrgSid: '',
createTime: '',
deptName: '',
deptSid: '',
instanceId: '',
sid: '',
taskId: '',
useOrgName: '',
useOrgSid: '',
readyStrength: '',
readyVehicle: '',
files: [],
contactPerson: [],
carList: []
},
rules: {}
}
},
created() {
console.log('url:' + window.location.href)
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
this.showInfo(obj.businessSid)
},
mounted() {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 500 + 'px'
}
}, '*')
},
methods: {
showInfo(sid) {
this.viewTitle = '【编辑】定点企业备案申请'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchDetailsBySid(sid).then((res) => {
if (res.success) {
this.formobj = res.data
}
})
},
abutmentAdd() {
this.formobj.contactPerson.push({
sid: '',
name: '',
mobile: '',
remarks: ''
})
},
abutmentDelete(index) {
this.formobj.contactPerson.splice(index, 1)
},
carAdd() {
this.formobj.carList.push({
sid: '',
vehMark: '',
vinNo: '',
buyDate: ''
})
},
carDelete(index) {
this.formobj.carList.splice(index, 1)
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.saveOrUpdate(this.formobj).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
// ()
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
}
})
},
submit() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.submit(this.formobj).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '提交成功' })
// ()
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
}
})
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
</style>

261
yxt-as-ui/src/views/workFlow/qiankuanyuejieFlow/maintenanceEnterpriseYiBan.vue

@ -0,0 +1,261 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="danger" size="small" @click="openRevoke()">撤回</el-button>
</div>
</div>
<div class="">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title">基础信息</div>
<el-row>
<el-col :span="12">
<div class="span-sty">客户名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.customerName }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">客户类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.customerType }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">联系电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.mobile }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">微信号</div>
<el-form-item><span class="addinputInfo">{{ formobj.weixin }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">客户地址</div>
<el-form-item><span class="addinputInfo">{{ formobj.province }}{{ formobj.city }}{{ formobj.county }}{{ formobj.address }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">证件类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.certificateType }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">证件号码</div>
<el-form-item><span class="addinputInfo">{{ formobj.idnumber }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">证件有效期</div>
<el-form-item><span class="addinputInfo">{{ formobj.endDate }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">电子邮箱</div>
<el-form-item><span class="addinputInfo">{{ formobj.e_mail }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">紧急联系人</div>
<el-form-item><span class="addinputInfo">{{ formobj.emergencyContact }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">紧急联系电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.emergencyMobile }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">备案有效期</div>
<el-form-item><span class="addinputInfo">{{ formobj.filingIndate }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">附件</div>
<el-form-item><el-image class="addinputInfo" style="width: 150px;height: 150px" v-for="(item, index) in formobj.files" :key="index" :src="item" :preview-src-list="formobj.files" /></el-form-item>
</el-col>
</el-row>
<div class="title">对接人信息<span v-if="formobj.filingType == '补充'">(已备{{ formobj.readyStrength }})</span></div>
<el-table :key="abutmentKey" :data="formobj.contactPerson" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="name" label="姓名" align="center" min-width="200" />
<el-table-column prop="mobile" label="电话" align="center" min-width="200" />
<el-table-column prop="remarks" label="备注" align="center" min-width="200" />
</el-table>
<div class="title">车辆信息<span v-if="formobj.filingType == '补充'">(已备{{ formobj.readyVehicle }})</span></div>
<el-table :key="carKey" :data="formobj.carList" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="vehMark" label="车牌号" align="center" min-width="200" />
<el-table-column prop="vinNo" label="车架号" align="center" min-width="200" />
<el-table-column prop="buyDate" label="购买日期" align="center" min-width="200" />
</el-table>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/client/maintenanceEnterprise'
export default {
name: 'MaintenanceEnterpriseYiBan',
data() {
return {
viewTitle: '',
viewState: 1,
abutmentKey: 1,
carKey: 2,
index: 0,
formobj: {
customerName: '',
customerSid: '',
customerType: '',
customerTypeKey: '',
mobile: '',
weixin: '',
province: '',
city: '',
county: '',
address: '',
certificateType: '',
certificateTypeKey: '',
idnumber: '',
endDate: '',
e_mail: '',
emergencyContact: '',
emergencyMobile: '',
filingIndate: '',
filingType: '', //
remarks: '',
createByName: '',
createBySid: '',
createOrgName: '',
createOrgSid: '',
createTime: '',
deptName: '',
deptSid: '',
instanceId: '',
sid: '',
taskId: '',
useOrgName: '',
useOrgSid: '',
readyStrength: '',
readyVehicle: '',
files: [],
contactPerson: [],
carList: []
},
rules: {},
//
linkByParameter: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
orgSidPath: '',
taskDefKey: '',
userSid: ''
}
}
},
created() {
console.log('url:' + window.location.href)
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
console.log('iframe页面获取的obj:', obj)
//
this.linkByParameter.businessSid = obj.businessSid
this.linkByParameter.instanceId = obj.instanceId
this.linkByParameter.taskId = obj.taskId
this.linkByParameter.taskDefKey = obj.taskDefKey
this.linkByParameter.userSid = window.sessionStorage.getItem('userSid')
//
this.showInfo(obj.businessSid)
},
mounted() {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 500 + 'px'
}
}, '*')
},
methods: {
showInfo(sid) {
this.viewTitle = '欠款月结客户备案申请详情'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
req.fetchDetailsBySid(sid).then((res) => {
if (res.success) {
this.formobj = res.data
if (this.formobj.files.length > 0) {
const aa = []
this.formobj.files.forEach((e) => {
aa.push(e.url)
})
this.formobj.files = aa
}
}
})
},
/** 确认撤回任务 */
openRevoke() {
this.$confirm('是否确认执行撤回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleRevoke()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消撤回'
})
})
},
/** 撤回任务 */
handleRevoke() {
req.revokeProcess(this.linkByParameter).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
</style>

14
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java

@ -1,5 +1,6 @@
package com.yxt.anrui.as.api.asbusrepairbill;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -149,5 +150,16 @@ public class AsBusrepairBill extends BaseEntity {
private String dockingPhone;
@ApiModelProperty("是否确认材料费(1是,0否)")
private Integer materialConfirm;
@ApiModelProperty("派工时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date dispatchTime;
@ApiModelProperty("竣工时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date finishTime;
@ApiModelProperty("结算时间")
private String settleTime;
@ApiModelProperty("索赔类型key")
private String shClaimTypeKey;
@ApiModelProperty("索赔类型value")
private String shClaimTypeValue;
}

9
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillaitem/AsBusrepairBillAitem.java

@ -27,5 +27,12 @@ public class AsBusrepairBillAitem extends BaseEntity {
private BigDecimal price;
@ApiModelProperty("销售价常量")
private BigDecimal aitemPrice;
@ApiModelProperty("业务类型Key")
private String billBusTypeKey;
@ApiModelProperty("业务类型Value")
private String billBusTypeValue;
@ApiModelProperty("成本价")
private BigDecimal cost;
@ApiModelProperty("成本合计(成本价*数量)")
private BigDecimal costTotal;
}

39
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillaitemspec/AsBusrepairBillAitemspec.java

@ -0,0 +1,39 @@
package com.yxt.anrui.as.api.asbusrepairbillaitemspec;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Fan
* @description
* @date 2024/4/17 14:56
*/
@Data
@ApiModel(value = "维修工单-固定附加项目", description = "维修工单-固定附加项目")
@TableName("as_busrepair_bill_aitemspec")
public class AsBusrepairBillAitemspec extends BaseEntity {
@ApiModelProperty("工单sid")
private String billSid;
@ApiModelProperty("附加项目sid")
private String attachItemSid;
@ApiModelProperty("项目名称")
private String attachItem;
@ApiModelProperty("项目费用")
private BigDecimal price;
@ApiModelProperty("开票价")
private BigDecimal taxPrice;
@ApiModelProperty("业务类型Key")
private String billBusTypeKey;
@ApiModelProperty("业务类型Value")
private String billBusTypeValue;
@ApiModelProperty("成本价")
private BigDecimal cost;
@ApiModelProperty("成本合计(成本价*数量)")
private BigDecimal costTotal;
private int count;
}

9
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillsitem/AsBusrepairBillSitem.java

@ -48,6 +48,13 @@ public class AsBusrepairBillSitem extends BaseEntity {
private BigDecimal amount;
@ApiModelProperty("销售价格常量")
private BigDecimal sitemPrice;
@ApiModelProperty("业务类型Key")
private String billBusTypeKey;
@ApiModelProperty("业务类型Value")
private String billBusTypeValue;
@ApiModelProperty("成本价")
private BigDecimal cost;
@ApiModelProperty("成本合计(成本价*数量)")
private BigDecimal costTotal;
}

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetail.java

@ -108,4 +108,8 @@ public class AsBusrepairInventorybillDetail extends BaseEntity {
private BigDecimal cost;
@ApiModelProperty("成本合计")
private BigDecimal costTotal;
@ApiModelProperty("业务类型Key")
private String billBusTypeKey;
@ApiModelProperty("业务类型Value")
private String billBusTypeValue;
}

81
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java

@ -11,6 +11,7 @@ import com.yxt.anrui.as.api.asbillsettelapply.AsBillSettelApplyDto;
import com.yxt.anrui.as.api.asbusrepairbill.*;
import com.yxt.anrui.as.api.asbusrepairbill.app.*;
import com.yxt.anrui.as.api.asbusrepairbillaitem.AsBusrepairBillAitem;
import com.yxt.anrui.as.api.asbusrepairbillaitemspec.AsBusrepairBillAitemspec;
import com.yxt.anrui.as.api.asbusrepairbillinsurance.AsBusrepairBillInsurance;
import com.yxt.anrui.as.api.asbusrepairbillinsurancerecord.AsBusrepairBillInsuranceRecord;
import com.yxt.anrui.as.api.asbusrepairbillinvoice.AsBusrepairBillInvoice;
@ -33,6 +34,7 @@ import com.yxt.anrui.as.biz.asarrearsoutapply.AsArrearsoutApplyService;
import com.yxt.anrui.as.biz.asbillsettelapply.AsBillSettelApplyService;
import com.yxt.anrui.as.biz.asbusclaimbill.AsBusclaimBillService;
import com.yxt.anrui.as.biz.asbusrepairbillaitem.AsBusrepairBillAitemService;
import com.yxt.anrui.as.biz.asbusrepairbillaitemspec.AsBusrepairBillAitemspecService;
import com.yxt.anrui.as.biz.asbusrepairbillinsurance.AsBusrepairBillInsuranceRest;
import com.yxt.anrui.as.biz.asbusrepairbillinsurance.AsBusrepairBillInsuranceService;
import com.yxt.anrui.as.biz.asbusrepairbillinsurancerecord.AsBusrepairBillInsuranceRecordRest;
@ -155,7 +157,8 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
private FinSelectedReceivablesDetailedFeign finSelectedReceivablesDetailedFeign;
@Autowired
private AsBillSettelApplyService asBillSettelApplyService;
@Autowired
private AsBusrepairBillAitemspecService asBusrepairBillAitemspecService;
/**
* 维修领料获取派工单
*
@ -248,6 +251,7 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
asBusrepairBillSitemRepairerService.delByBillSid(sid);
asBusrepairBillAitemService.delByBillSid(sid);
asBusrepairBillInsuranceRecordService.delByBillSid(sid);
asBusrepairBillAitemspecService.delByBillSid(sid);
asAppendixService.delByLinkSid(sid);
} else {
AsBusrepairBill asBusrepairBill = new AsBusrepairBill();
@ -280,6 +284,63 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
asBusrepairBillNodeService.insert(billNode);
}
if (StringUtils.isNotBlank(sid)) {
//施救费
if (StringUtils.isNotBlank(dto.getRescueAmount())) {
AsBusrepairBillAitemspec spec = new AsBusrepairBillAitemspec();
spec.setBillSid(sid);
spec.setAttachItem("施救费");
spec.setPrice(new BigDecimal(dto.getRescueAmount()));
if (StringUtils.isNotBlank(dto.getRescueRemarks())) {
spec.setRemarks(dto.getRescueRemarks());
}
if (StringUtils.isNotBlank(dto.getRescueKPAmount())) {
spec.setTaxPrice(new BigDecimal(dto.getRescueKPAmount()));
}
spec.setCount(1);
spec.setCost(new BigDecimal(dto.getRescueAmount()));
spec.setCostTotal(new BigDecimal(dto.getRescueAmount()));
spec.setBillBusTypeKey("003");
spec.setBillBusTypeValue("附加项目");
asBusrepairBillAitemspecService.insert(spec);
}
//厂家补助
if (StringUtils.isNotBlank(dto.getSubsidyAmount())) {
AsBusrepairBillAitemspec spec = new AsBusrepairBillAitemspec();
spec.setBillSid(sid);
spec.setAttachItem("厂家补助");
spec.setPrice(new BigDecimal(dto.getSubsidyAmount()));
if (StringUtils.isNotBlank(dto.getSubsidyRemarks())) {
spec.setRemarks(dto.getRescueRemarks());
}
if (StringUtils.isNotBlank(dto.getSubsidyKPAmount())) {
spec.setTaxPrice(new BigDecimal(dto.getSubsidyKPAmount()));
}
spec.setCount(1);
spec.setCost(new BigDecimal(dto.getSubsidyAmount()));
spec.setCostTotal(new BigDecimal(dto.getSubsidyAmount()));
spec.setBillBusTypeKey("003");
spec.setBillBusTypeValue("附加项目");
asBusrepairBillAitemspecService.insert(spec);
}
//外出费
if (StringUtils.isNotBlank(dto.getOutAmount())) {
AsBusrepairBillAitemspec spec = new AsBusrepairBillAitemspec();
spec.setBillSid(sid);
spec.setAttachItem("外出费");
spec.setPrice(new BigDecimal(dto.getOutAmount()));
if (StringUtils.isNotBlank(dto.getRescueRemarks())) {
spec.setRemarks(dto.getRescueRemarks());
}
if (StringUtils.isNotBlank(dto.getOutKPAmount())) {
spec.setTaxPrice(new BigDecimal(dto.getOutKPAmount()));
}
spec.setCount(1);
spec.setCost(new BigDecimal(dto.getOutAmount()));
spec.setCostTotal(new BigDecimal(dto.getOutAmount()));
spec.setBillBusTypeKey("003");
spec.setBillBusTypeValue("附加项目");
asBusrepairBillAitemspecService.insert(spec);
}
//新增车辆信息
AsBusrepairBillVech vech = new AsBusrepairBillVech();
vech.setBillSid(sid);
@ -343,6 +404,15 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
AsBusrepairBillSitem sitem = new AsBusrepairBillSitem();
BeanUtil.copyProperties(sitemVo, sitem, "id", "sid");
sitem.setBillSid(sid);
AsServiceItem item = asServiceItemService.fetchBySid(sitemVo.getServiceItemSid());
if (null != item) {
if (null != item.getCost()) {
sitem.setCost(item.getCost());
sitem.setCostTotal(item.getCost());
}
}
sitem.setBillBusTypeKey("002");
sitem.setBillBusTypeValue("维修项目");
asBusrepairBillSitemService.insert(sitem);
List<String> staffList = sitemVo.getStaffList();
List<String> staffNameList = sitemVo.getStaffNameList();
@ -381,6 +451,15 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
aitem.setRemarks(aitemVo.getRemarks());
}
aitem.setBillSid(sid);
AsBusrepairBillAitem item = asBusrepairBillAitemService.fetchBySid(aitemVo.getAitemSid());
if (null != item) {
if (null != item.getCost()) {
aitem.setCost(item.getCost());
aitem.setCostTotal(item.getCost());
}
}
aitem.setBillBusTypeKey("003");
aitem.setBillBusTypeValue("附加项目");
asBusrepairBillAitemService.insert(aitem);
}
}

51
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillaitemspec/AsBusrepairBillAitemspecMapper.java

@ -0,0 +1,51 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.biz.asbusrepairbillaitemspec;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.as.api.asbusrepairbillaitem.AsBusrepairBillAitem;
import com.yxt.anrui.as.api.asbusrepairbillaitemspec.AsBusrepairBillAitemspec;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface AsBusrepairBillAitemspecMapper extends BaseMapper<AsBusrepairBillAitemspec> {
@Select("select * from as_busrepair_bill_aitemspec where billSid = #{billSid}")
List<AsBusrepairBillAitemspec> fetchByBillSid(@Param("billSid") String billSid);
@Delete("delete from as_busrepair_bill_aitemspec where billSid = #{sid}")
void delByBillSid(String billSid);
}

6
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillaitemspec/AsBusrepairBillAitemspecMapper.xml

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.as.biz.asbusrepairbillaitemspec.AsBusrepairBillAitemspecMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
</mapper>

45
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillaitemspec/AsBusrepairBillAitemspecRest.java

@ -0,0 +1,45 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.biz.asbusrepairbillaitemspec;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "维修工单-保险信息")
@RestController
@RequestMapping("v1/AsBusrepairBillAitem")
public class AsBusrepairBillAitemspecRest {
}

51
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillaitemspec/AsBusrepairBillAitemspecService.java

@ -0,0 +1,51 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.biz.asbusrepairbillaitemspec;
import com.yxt.anrui.as.api.asbusrepairbillaitem.AsBusrepairBillAitem;
import com.yxt.anrui.as.api.asbusrepairbillaitemspec.AsBusrepairBillAitemspec;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class AsBusrepairBillAitemspecService extends MybatisBaseService<AsBusrepairBillAitemspecMapper, AsBusrepairBillAitemspec> {
public List<AsBusrepairBillAitemspec> fetchByBillSid(String billSid) {
return baseMapper.fetchByBillSid(billSid);
}
public void delByBillSid(String billSid) {
baseMapper.delByBillSid(billSid);
}
}

21
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java

@ -321,6 +321,25 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
} else {
detail.setIsTaxRate(0);
}
if (StringUtils.isNotBlank(inventory.getManufacturerName())) {
detail.setManufacturerName(inventory.getManufacturerName());
}
if (StringUtils.isNotBlank(inventory.getManufacturerSid())) {
detail.setManufacturerSid(inventory.getManufacturerSid());
}
if (StringUtils.isNotBlank(inventory.getSupplierName())) {
detail.setSupplierName(inventory.getSupplierName());
}
if (StringUtils.isNotBlank(inventory.getSupplierSid())) {
detail.setSupplierSid(inventory.getSupplierSid());
}
if (null != inventory.getCost()) {
BigDecimal cost = inventory.getCost();
detail.setCost(cost);
BigDecimal c = new BigDecimal(sDto.getCount());
BigDecimal multiply = c.multiply(cost);
detail.setCostTotal(multiply);
}
}
if (StringUtils.isNotBlank(dto.getWarehouseManager())) {
detail.setOperName(dto.getWarehouseManager());
@ -332,6 +351,8 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
detail.setGoodsDetailsPrice(new BigDecimal(sDto.getPrice()));
}
detail.setIsEnable(isEnable);
detail.setBillBusTypeKey("维修用料");
detail.setBillBusTypeValue("001");
asBusrepairInventorybillDetailService.insert(detail);
WmsUpdateCountQuery countQuery = new WmsUpdateCountQuery();
countQuery.setSid(sDto.getInventorySid());

8
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventory.java

@ -62,4 +62,12 @@ public class WmsInventory extends BaseEntity {
private String useOrgSid;
@ApiModelProperty("厂家订单号")
private String manufactorBillNo;
@ApiModelProperty("厂家sid")
private String manufacturerSid; // 库位sid
@ApiModelProperty("厂家名称")
private String manufacturerName; // 库位编号
@ApiModelProperty("客户/供应商sid,出库是为客户,入库时为供应商")
private String supplierSid;
@ApiModelProperty("客户/供应商名称")
private String supplierName;
}

6
yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsSpuRest.java

@ -21,6 +21,12 @@ public class BaseGoodsSpuRest {
BaseGoodsSpuService baseGoodsSpuService;
@ApiOperation("根据sid查询商品")
@GetMapping("/fetchEntityBySid")
public ResultBean<BaseGoodsSpu> fetchEntityBySid(@RequestParam("sid") String sid) {
return baseGoodsSpuService.fetchEntityBySid(sid);
}
@ApiOperation("商品管理分页列表")
@PostMapping("/goodsListPage")
public ResultBean<PagerVo<BaseGoodsSpuListVo>> goodsListPage(@RequestBody PagerQuery<BaseGoodsSpuListQuery> pq) {

9
yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpuService.java

@ -554,4 +554,13 @@ public class BaseGoodsSpuService extends MybatisBaseService<BaseGoodsSpuMapper,
}
return rb.success().setData(isGoodsID);
}
public ResultBean<BaseGoodsSpu> fetchEntityBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
BaseGoodsSpu baseGoodsSpu = fetchBySid(sid);
if (baseGoodsSpu != null) {
return rb.success().setData(baseGoodsSpu);
}
return rb;
}
}

6
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SalesGoodsVo.java

@ -40,8 +40,6 @@ public class SalesGoodsVo {
@ApiModelProperty("库存数量")
private String currentCount;
@ApiModelProperty("厂家")
private String supplierName;
@ApiModelProperty("商品ID")
private String goodsID; // 商品ID
@ -63,6 +61,10 @@ public class SalesGoodsVo {
private String billObjSid;
//供应商
private String billObjName;
//供应商sid
private String supplierSid;
//供应商
private String supplierName;
//销售价常量
private String goodsDetailsPrice;
//是否含税(0含税,1不含税)

2
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBill.java

@ -106,4 +106,6 @@ public class SmsSalesBill extends BaseEntity {
private BigDecimal goodsAmount;
@ApiModelProperty("附加费")
private BigDecimal addAmount;
@ApiModelProperty("结算时间")
private String settleTime;
}

44
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java

@ -241,6 +241,30 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
SmsSalesBillDetail salesBillDetail = new SmsSalesBillDetail();
BeanUtil.copyProperties(goodsVo, salesBillDetail, "id", "sid");
salesBillDetail.setBillSid(entity.getSid());
if (StringUtils.isNotBlank(goodsVo.getBillObjName())) {
salesBillDetail.setSupplierName(goodsVo.getBillObjName());
}
if (StringUtils.isNotBlank(goodsVo.getBillObjSid())) {
salesBillDetail.setSupplierSid(goodsVo.getBillObjSid());
}
WmsInventory inventory = wmsInventoryFeign.fetchEntityBySid(goodsVo.getInventorySid()).getData();
if (null != inventory) {
if (StringUtils.isNotBlank(inventory.getManufacturerName())) {
salesBillDetail.setManufacturerName(inventory.getManufacturerName());
}
if (StringUtils.isNotBlank(inventory.getManufacturerSid())) {
salesBillDetail.setManufacturerSid(inventory.getManufacturerSid());
}
if (null != inventory.getCost()) {
BigDecimal cost = inventory.getCost();
salesBillDetail.setCost(cost);
BigDecimal c = new BigDecimal(goodsVo.getCount());
BigDecimal multiply = c.multiply(cost);
salesBillDetail.setCostTotal(multiply);
}
}
salesBillDetail.setBillBusTypeKey("004");
salesBillDetail.setBillBusTypeValue("配件销售");
smsSalesBillDetailService.insert(salesBillDetail);
}
}
@ -278,6 +302,14 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
SmsSalesBillDetail salesBillDetail = new SmsSalesBillDetail();
BeanUtil.copyProperties(goodsVo, salesBillDetail, "id", "sid");
salesBillDetail.setBillSid(dtoSid);
if (StringUtils.isNotBlank(goodsVo.getBillObjName())) {
salesBillDetail.setSupplierName(goodsVo.getBillObjName());
}
if (StringUtils.isNotBlank(goodsVo.getBillObjSid())) {
salesBillDetail.setSupplierSid(goodsVo.getBillObjSid());
}
salesBillDetail.setBillBusTypeKey("004");
salesBillDetail.setBillBusTypeValue("配件销售");
smsSalesBillDetailService.insert(salesBillDetail);
}
}
@ -325,12 +357,12 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
for (SmsSalesBillDetail smsSalesBillDetail : billDetailList) {
SalesGoodsVo salesGoodsVo = new SalesGoodsVo();
BeanUtil.copyProperties(smsSalesBillDetail, salesGoodsVo);
// SmsGoods goods = smsGoodsService.fetchEntityByGoodsID(smsSalesBillDetail.getGoodsID());
// if (null != goods) {
// if (StringUtils.isNotBlank(goods.getSupplierName())) {
// salesGoodsVo.setSupplierName(goods.getSupplierName());
// }
// }
if (StringUtils.isNotBlank(smsSalesBillDetail.getSupplierSid())) {
salesGoodsVo.setBillObjSid(smsSalesBillDetail.getSupplierSid());
}
if (StringUtils.isNotBlank(smsSalesBillDetail.getSupplierName())) {
salesGoodsVo.setBillObjName(smsSalesBillDetail.getSupplierName());
}
goodsVos.add(salesGoodsVo);
}
vo.setGoodsVos(goodsVos);

13
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbilldetail/SmsSalesBillDetail.java

@ -97,9 +97,9 @@ public class SmsSalesBillDetail extends BaseEntity {
//库位编码
private String warehouseRackCode;
//供应商sid
private String billObjSid;
private String supplierSid;
//供应商
private String billObjName;
private String supplierName;
//销售价常量
private BigDecimal goodsDetailsPrice;
//是否含税(0含税,1不含税)
@ -109,7 +109,14 @@ public class SmsSalesBillDetail extends BaseEntity {
private String manufacturerSid; // 库位sid
@ApiModelProperty("厂家名称")
private String manufacturerName; // 库位编号
@ApiModelProperty("业务类型Key")
private String billBusTypeKey;
@ApiModelProperty("业务类型Value")
private String billBusTypeValue;
@ApiModelProperty("成本价")
private BigDecimal cost;
@ApiModelProperty("成本合计(成本价*数量)")
private BigDecimal costTotal;
}

91
yxt-sms-biz/src/main/java/com/yxt/sms/feign/wms/wmsinventory/WmsInventory.java

@ -1,6 +1,7 @@
package com.yxt.sms.feign.wms.wmsinventory;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@ -12,43 +13,59 @@ import java.util.Date;
*/
@Data
public class WmsInventory extends BaseEntity {
// private String id;
// private String sid= UUID.randomUUID().toString();
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
// private Date createTime;
// private String remarks;
// private String isEnable;
private String goodsID;//商品ID(唯一编码,入库时生成)
private String goodsSpuSid;//商品基础信息sid
private String goodsSpuName;//商品名称
private String goodsSkuSid;//商品Skusid
private String goodsSkuTitle;//商品Sku名称
private String goodsSkuCode;//商品编码(图号)
private String goodsSkuOwnSpec;//规格型号
private String billSid;//入库单sid
private String billDetailSid;//入库单明细sid
private BigDecimal price1;//销售价格1
private BigDecimal price2;//销售价格2
private BigDecimal price3;//销售价格3
private BigDecimal price4;//销售价格4
private BigDecimal price5;//销售价格5
private String unit;//计量单位
private BigDecimal count;//库存数量
private BigDecimal minimumPrice;//销售底价
private BigDecimal freePrice;//三包价格
private BigDecimal firstMaintainPrice;//首保价格
private String warehouseSid;//仓库sid
private String warehouseName;//仓库名称
private String warehouseAreaSid;//库区sid
private String warehouseArea;//库区名称
private String warehouseRackSid;//货架sid
private String warehouseRackName;//货架名称
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)")
private String goodsID;
@ApiModelProperty("商品基础信息sid")
private String goodsSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品编码(图号)")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("现有量")
private BigDecimal count;
@ApiModelProperty("分配量(锁定数量,出库申请通过,但未实际出库)")
private BigDecimal allocateCount;
@ApiModelProperty("拣货量")
private BigDecimal pickCount;
@ApiModelProperty("冻结量")
private BigDecimal freezeCount;
@ApiModelProperty("入库单价")
private BigDecimal cost;
@ApiModelProperty("税率")
private BigDecimal taxRate;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编码")
private String warehouseRackCode;
private int isShowDiscount;//是否显示折扣标志
private Date firstInDate;//首次入库日期-计算库龄的依据
private String lockCount;//锁定数量,计算字段,出库申请通过,但未实际出库
private int sortNo;//排序
private String useOrgSid;//使用组织sid
private String createOrgSid;//创建组织sid
@ApiModelProperty("首次入库日期-计算库龄的依据")
private Date firstInDate;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("厂家订单号")
private String manufactorBillNo;
@ApiModelProperty("厂家sid")
private String manufacturerSid; // 库位sid
@ApiModelProperty("厂家名称")
private String manufacturerName; // 库位编号
@ApiModelProperty("客户/供应商sid,出库是为客户,入库时为供应商")
private String supplierSid;
@ApiModelProperty("客户/供应商名称")
private String supplierName;
}

1
yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehousearea/WmsWarehouseAreaQuery.java

@ -14,6 +14,7 @@ public class WmsWarehouseAreaQuery implements Query {
private String code;//编码
private String warehouseSid;//仓库
private String areaTypeSid;//库区类型
private String zoneSid;//区域类型
@ApiModelProperty("菜单路由")
private String menuUrl;

18
yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehousearea/WmsWarehouseAreaService.java

@ -13,6 +13,8 @@ import com.yxt.common.core.vo.PagerVo;
import com.yxt.wms.biz.base.wmswarehouseinfo.WmsWarehouseInfo;
import com.yxt.wms.biz.base.wmswarehouseinfo.WmsWarehouseInfoService;
import com.yxt.wms.biz.base.wmswarehouseinfo.WmsWarehouseInfoVo;
import com.yxt.wms.biz.base.wmswarehousezone.WmsWarehouseZone;
import com.yxt.wms.biz.base.wmswarehousezone.WmsWarehouseZoneService;
import com.yxt.wms.feign.portal.privilege.PrivilegeQuery;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationVo;
@ -41,6 +43,8 @@ public class WmsWarehouseAreaService extends MybatisBaseService<WmsWarehouseArea
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private WmsWarehouseInfoService warehouseInfoService;
@Autowired
private WmsWarehouseZoneService wmsWarehouseZoneService;
public ResultBean<PagerVo<WmsWarehouseAreaVo>> listPage(PagerQuery<WmsWarehouseAreaQuery> pq) {
ResultBean rb = ResultBean.fireFail();
@ -91,6 +95,9 @@ public class WmsWarehouseAreaService extends MybatisBaseService<WmsWarehouseArea
if (StringUtils.isNotBlank(query.getWarehouseSid())) {
qw.eq("b.sid", query.getWarehouseSid());
}
if (StringUtils.isNotBlank(query.getZoneSid())) {
qw.eq("z.sid", query.getZoneSid());
}
if (StringUtils.isNotBlank(query.getAreaTypeSid())) {
qw.eq("c.sid", query.getAreaTypeSid());
}
@ -140,17 +147,18 @@ public class WmsWarehouseAreaService extends MybatisBaseService<WmsWarehouseArea
// return rb.setMsg("同一个仓库下的库区编码不能重复。");
// }
String warehouseSid = dto.getWarehouseSid();
String zoneSid = dto.getZoneSid();
WmsWarehouseArea wmsWarehouseArea = new WmsWarehouseArea();
sid = wmsWarehouseArea.getSid();
BeanUtil.copyProperties(dto, wmsWarehouseArea, "id", "sid");
wmsWarehouseArea.setCreateTime(new DateTime());
wmsWarehouseArea.setCreateBySid(dto.getUserSid());
wmsWarehouseArea.setIsEnable(1);
WmsWarehouseInfo warehouseInfo = warehouseInfoService.fetchBySid(warehouseSid);
if (null != warehouseInfo) {
String warehouseCode = warehouseInfo.getWarehouseCode();
int i = baseMapper.selectNum(warehouseCode);
String code = Rule.getBillNo3(warehouseCode, i);
WmsWarehouseZone wmsWarehouseZone = wmsWarehouseZoneService.fetchBySid(zoneSid);
if (null != wmsWarehouseZone) {
String zoneCode = wmsWarehouseZone.getZoneCode();
int i = baseMapper.selectNum(zoneCode);
String code = Rule.getBillNo3(zoneCode, i);
wmsWarehouseArea.setAreaCode(code);
}
baseMapper.insert(wmsWarehouseArea);

1
yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRackQuery.java

@ -14,6 +14,7 @@ public class WmsWarehouseRackQuery implements Query {
private String code;//编码
private String warehouseSid;//仓库
private String areaTypeSid;//库区类型
private String zoneSid;//区域类型
@ApiModelProperty("菜单路由")
private String menuUrl;
@ApiModelProperty("组织全路径sid")

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRackService.java

@ -91,6 +91,9 @@ public class WmsWarehouseRackService extends MybatisBaseService<WmsWarehouseRack
if (StringUtils.isNotBlank(query.getWarehouseSid())) {
qw.eq("c.sid", query.getWarehouseSid());
}
if (StringUtils.isNotBlank(query.getZoneSid())) {
qw.eq("z.sid", query.getZoneSid());
}
qw.ne("a.isDelete", "1");
IPage<WmsWarehouseRack> page = PagerUtil.queryToPage(pq);
IPage<WmsWarehouseRackVo> pagging = baseMapper.listPage(page, qw);

8
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventory.java

@ -68,8 +68,8 @@ public class WmsInventory extends BaseEntity {
private String manufacturerSid; // 库位sid
@ApiModelProperty("厂家名称")
private String manufacturerName; // 库位编号
@ApiModelProperty("供应商sid")
private String billObjSid; // 供应商sid
@ApiModelProperty("供应商名称")
private String billObjName; // 供应商名称
@ApiModelProperty("客户/供应商sid,出库是为客户,入库时为供应商")
private String supplierSid;
@ApiModelProperty("客户/供应商名称")
private String supplierName;
}

18
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecord.java

@ -66,10 +66,6 @@ public class WmsInventoryRecord extends BaseEntity {
private String busTypeKey; // 业务类型key(采购入库、维修出入库、销售出入库等)
@ApiModelProperty("业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)")
private String busTypeValue; // 业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)
@ApiModelProperty("客户/供应商sid,出库是为客户,入库时为供应商")
private String billObjSid; // 客户/供应商sid,出库是为客户,入库时为供应商
@ApiModelProperty("客户/供应商名称")
private String billObjName; // 客户/供应商名称
@ApiModelProperty("批次号")
private String batchNumber; // 批次号
@ApiModelProperty("商品基础信息Sid")
@ -104,8 +100,22 @@ public class WmsInventoryRecord extends BaseEntity {
private BigDecimal tax;
@ApiModelProperty("入库金额")
private BigDecimal amount;
@ApiModelProperty("销售指导价")
private BigDecimal guidPrice;
@ApiModelProperty("经办人sid")
private String handlerSid; // 库位sid
@ApiModelProperty("经办人")
private String handlerName; // 库位编号
@ApiModelProperty("客户/供应商sid,出库是为客户,入库时为供应商")
private String supplierSid;
@ApiModelProperty("客户/供应商名称")
private String supplierName;
@ApiModelProperty("厂家名称")
private String manufacturerName;
@ApiModelProperty("厂家sid")
private String manufacturerSid;
@ApiModelProperty("前一单据明细sid(溯源使用)")
private String preBillSid;
@ApiModelProperty("前一单编号")
private String preBillNo;
}

19
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordDto.java

@ -69,10 +69,6 @@ public class WmsInventoryRecordDto implements Dto {
private String busTypeKey; // 业务类型key(采购入库、维修出入库、销售出入库等)
@ApiModelProperty("业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)")
private String busTypeValue; // 业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)
@ApiModelProperty("客户/供应商sid,出库是为客户,入库时为供应商")
private String billObjSid; // 客户/供应商sid,出库是为客户,入库时为供应商
@ApiModelProperty("客户/供应商名称")
private String billObjName; // 客户/供应商名称
@ApiModelProperty("批次号")
private String batchNumber; // 批次号
@ApiModelProperty("商品基础信息Sid")
@ -117,4 +113,19 @@ public class WmsInventoryRecordDto implements Dto {
private String useOrgSid;
@ApiModelProperty("厂家订单号")
private String manufactorBillNo;
@ApiModelProperty("销售指导价")
private String guidPrice;
@ApiModelProperty("客户/供应商sid,出库是为客户,入库时为供应商")
private String supplierSid;
@ApiModelProperty("客户/供应商名称")
private String supplierName;
@ApiModelProperty("厂家名称")
private String manufacturerName;
@ApiModelProperty("厂家sid")
private String manufacturerSid;
@ApiModelProperty("前一单据明细sid(溯源使用)")
private String preBillSid;
@ApiModelProperty("前一单编号")
private String preBillNo;
}

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldinventory/WmsOldInventoryService.java

@ -149,7 +149,7 @@ public class WmsOldInventoryService extends MybatisBaseService<WmsOldInventoryMa
wmsInventoryRecord.setBillType("1");
wmsInventoryRecord.setBusTypeKey("09");
wmsInventoryRecord.setBusTypeValue("其他入库");
wmsInventoryRecord.setBillObjName(wmsBusrepairInventorybillDetailOld.getManufacturerName());
wmsInventoryRecord.setManufacturerName(wmsBusrepairInventorybillDetailOld.getManufacturerName());
wmsInventoryRecord.setGoodsSpuSid(wmsBusrepairInventorybillDetailOld.getGoodsSpuSid());
wmsInventoryRecord.setGoodsSpuName(wmsBusrepairInventorybillDetailOld.getGoodsSpuName());
wmsInventoryRecord.setGoodsSkuSid(wmsBusrepairInventorybillDetailOld.getGoodsSkuSid());

17
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java

@ -36,6 +36,7 @@ import com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetailServic
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchService;
import com.yxt.wms.biz.inventory.wmsshelfbill.app.*;
import com.yxt.wms.biz.inventory.wmsshelfbilldetail.*;
import com.yxt.wms.feign.base.basegoodspu.BaseGoodsSpu;
import com.yxt.wms.feign.base.basegoodspu.BaseGoodsSpuFeign;
import com.yxt.wms.feign.base.basegoodssku.BaseGoodsSkuDetailsVo;
import com.yxt.wms.feign.base.basegoodssku.BaseGoodsSkuFeign;
@ -788,9 +789,25 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
if (null != ansBill.getTaxRate()) {
recordDto.setTaxRate(ansBill.getTaxRate().toString());
}
if (StringUtils.isNotBlank(ansBill.getSupplierName())) {
recordDto.setSupplierName(ansBill.getSupplierName());
}
if (StringUtils.isNotBlank(ansBill.getSupplierSid())) {
recordDto.setSupplierSid(ansBill.getSupplierSid());
}
}
}
}
ResultBean<BaseGoodsSpu> goodsSpuResultBean = baseGoodsSpuFeign.fetchEntityBySid(recordDto.getGoodsSpuSid());
if (goodsSpuResultBean.getSuccess()) {
BaseGoodsSpu goodsSpu = goodsSpuResultBean.getData();
if (StringUtils.isNotBlank(goodsSpu.getManufacturerName())) {
recordDto.setManufacturerName(goodsSpu.getManufacturerName());
}
if (StringUtils.isNotBlank(goodsSpu.getManufacturerSid())) {
recordDto.setManufacturerSid(goodsSpu.getManufacturerSid());
}
}
wmsInventoryRecordService.saveRecord(recordDto);
}
List<WmsShelfBillDetail> vos = wmsShelfBillDetailService.selectByMainSid(dto.getShelvesSid());

33
yxt-wms-biz/src/main/java/com/yxt/wms/feign/base/basegoodspu/BaseGoodsSpu.java

@ -0,0 +1,33 @@
package com.yxt.wms.feign.base.basegoodspu;
import com.yxt.common.core.domain.BaseEntity;
import lombok.Data;
/**
* @author wangpengfei
* @date 2024/2/26 13:36
*/
@Data
public class BaseGoodsSpu extends BaseEntity {
private String goodsCode;//商品代码
private String barCode;//条形码
private String goodsName;//商品名称
private String subTitle;//副标题
private String goodsPY;//拼音缩写
private String goodsShortName;//商品简称
private String goodsTypeSid;//商品分类sid
private String brandSid;//品牌sid
private String manufacturerSid;//厂家sid
private String manufacturerName;//厂家名称
private String goodsUnitSid;//商品单位sid
private String goodsUnitName;//商品单位名称
private String taxRate;//税率
private Integer shelfLife;//保质期天
private String nationalStandardCode;//国标码
private String sortNo;//排序
private String externalCode;//外部编码
private String factoryCode;//厂家货号
private String isListed;//是否上架
private String useOrgSid;//使用组织sid
private String createOrgSid;//创建组织sid
}

5
yxt-wms-biz/src/main/java/com/yxt/wms/feign/base/basegoodspu/BaseGoodsSpuFeign.java

@ -7,6 +7,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
@ -24,4 +25,8 @@ public interface BaseGoodsSpuFeign {
@ApiOperation("查询商品是否为一品一码")
@GetMapping("/selIsGoodsID/{sid}")
public ResultBean<String> selIsGoodsID(@PathVariable("sid") String sid);
@ApiOperation("根据sid查询商品")
@GetMapping("/fetchEntityBySid")
public ResultBean<BaseGoodsSpu> fetchEntityBySid(@RequestParam("sid") String sid);
}

Loading…
Cancel
Save