Browse Source

Merge remote-tracking branch 'origin/master'

master
dimengzhe 1 month ago
parent
commit
66da0319bf
  1. 4
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerbank/BaseManufacturerBankFeign.java
  2. 19
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerbank/BaseManufacturerBankFeignFallback.java
  3. 17
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerretware/BaseManufacturerRetwareFeign.java
  4. 41
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclebrand/BaseVehicleBrand.java
  5. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankMapper.java
  6. 11
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankMapper.xml
  7. 24
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankRest.java
  8. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankService.java
  9. 25
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretware/BaseManufacturerRetwareRest.java
  10. 6
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/paymentAdd.vue
  11. 3
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/paymentInfo.vue
  12. 18
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/relation/paymentInformationAdd.vue
  13. 1
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/relation/paymentInformationInfo.vue
  14. 24
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentInformation/paymentInformation.vue
  15. 29
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpayment/FinPayment.java
  16. 41
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpayment/FinPaymentDetailsVo.java
  17. 33
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpayment/FinPaymentDto.java
  18. 18
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpayment/FinPaymentFeign.java
  19. 19
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpayment/FinPaymentQuery.java
  20. 19
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpayment/FinPaymentVo.java
  21. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentapplydetails/FinPaymentapplyDetailVo.java
  22. 47
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentapplydetailsbelow/FinPaymentapplyDetailsBelow.java
  23. 27
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentapplydetailsbelow/FinPaymentapplyDetailsBelowDetailsVo.java
  24. 47
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentapplydetailsbelow/FinPaymentapplyDetailsBelowDto.java
  25. 14
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDto.java
  26. 26
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpayment/FinPaymentRest.java
  27. 3
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentapply/FinPaymentapplyMapper.xml
  28. 15
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentapply/FinPaymentapplyRest.java
  29. 29
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentapply/FinPaymentapplyService.java
  30. 3
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentapplydetails/FinPaymentapplyDetailsService.java
  31. 18
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentapplydetailsbeloweve/FinPaymentapplyDetailsBelowEveMapper.java
  32. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentapplydetailsbeloweve/FinPaymentapplyDetailsBelowEveService.java
  33. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyFeign.java
  34. 26
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml
  35. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java
  36. 105
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundquery/ScmApplyInboundQueryRest.java
  37. 49
      yxt-as-ui/src/api/storage/receivingGoods.js
  38. 117
      yxt-as-ui/src/views/storage/deliveryNotice/index.vue
  39. 389
      yxt-as-ui/src/views/storage/deliveryNotice/procurementInfo.vue
  40. 385
      yxt-as-ui/src/views/storage/deliveryNotice/receiptAdd.vue
  41. 2
      yxt-as-ui/src/views/storage/deliveryNotice/receiptInfo.vue
  42. 732
      yxt-as-ui/src/views/storage/receivingGoods/index.vue
  43. 1231
      yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsAdd.vue
  44. 210
      yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsInfo.vue
  45. 417
      yxt-as-ui/src/views/storage/receivingGoods/upShelfAddRecord.vue
  46. 158
      yxt-as-ui/src/views/storage/receivingGoods/upShelfInfo.vue
  47. 527
      yxt-as-ui/src/views/storage/upShelf/index.vue
  48. 531
      yxt-as-ui/src/views/storage/upShelf/upShelfAdd.vue
  49. 128
      yxt-as-ui/src/views/storage/upShelf/upShelfInfo.vue
  50. 12
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyService.java
  51. 17
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java
  52. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillMapper.xml
  53. 6
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillService.java
  54. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsDetailsVo.java
  55. 7
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java
  56. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailDto2.java
  57. 6
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailVo.java
  58. 1
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java
  59. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/app/AppDetailsVo.java
  60. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/ShelfDetailsListVo.java
  61. 8
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/ShelfInitListVo.java
  62. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/WmsShelfBillDetail.java
  63. 6
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/WmsShelfBillDetailDto.java

4
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerbank/BaseManufacturerBankFeign.java

@ -63,4 +63,8 @@ public interface BaseManufacturerBankFeign {
@ApiOperation("根据品牌sid和厂家回款通路名称查询银行账号")
@GetMapping("/selectBankAccount/{brandSid}/{manufaSaleChannelValue}")
ResultBean<String> selectBankAccount(@PathVariable("brandSid") String brandSid,@PathVariable("manufaSaleChannelValue") String manufaSaleChannelValue);
@ApiOperation("根据品牌sid和厂家回款通路名称查询付款通路编码key")
@GetMapping("/selectBankAccount/{brandSid}/{actualPay}")
ResultBean<String> selectPaymentAccessNoKey(@PathVariable("brandSid") String brandSid,@PathVariable("actualPay") String actualPay);
}

19
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerbank/BaseManufacturerBankFeignFallback.java

@ -2,22 +2,8 @@ package com.yxt.anrui.base.api.basemanufacturerbank;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Project: anrui-base(安瑞基础信息模块) <br/>
* File: BaseManufacturerBankFeignFallback.java <br/>
* Class: com.yxt.anrui.base.api.basemanufacturerbank.BaseManufacturerBankFeignFallback <br/>
* Description: 供应厂商开户行信息. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-09-10 11:31:46 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Component
public class BaseManufacturerBankFeignFallback implements BaseManufacturerBankFeign {
@ -50,4 +36,9 @@ public class BaseManufacturerBankFeignFallback implements BaseManufacturerBankFe
public ResultBean<String> selectBankAccount(String brandSid, String manufaSaleChannelValue) {
return null;
}
@Override
public ResultBean<String> selectPaymentAccessNoKey(String brandSid, String actualPay) {
return null;
}
}

17
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerretware/BaseManufacturerRetwareFeign.java

@ -37,19 +37,6 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: anrui-base(厂家退库) <br/>
* File: BaseManufacturerRetwareFeign.java <br/>
* Class: com.yxt.anrui.base.api.basemanufacturerretware.BaseManufacturerRetwareFeign <br/>
* Description: 厂家退库表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-07-05 17:02:32 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "厂家退库表")
@FeignClient(
contextId = "anrui-base-BaseManufacturerRetware",
@ -77,12 +64,12 @@ public interface BaseManufacturerRetwareFeign {
@PostMapping("/createPdf")
@ResponseBody
public ResultBean<String> createPdf(@RequestParam("sid") String sid);
@ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids")
@ResponseBody
public ResultBean delBySids(@RequestBody String[] sids);
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody

41
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclebrand/BaseVehicleBrand.java

@ -6,53 +6,40 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-base(安瑞基础信息模块) <br/>
* File: BaseVehicleBrand.java <br/>
* Class: com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrand <br/>
* Description: 品牌信息. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-09-10 11:31:46 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "品牌信息", description = "品牌信息")
@TableName("base_vehicle_brand")
@Data
public class BaseVehicleBrand extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("品牌编码(陕汽必须字段)")
@ApiModelProperty("品牌编码(陕汽必须字段)")
private String brandCode;
@ApiModelProperty("品牌名称(陕汽必须字段)")
@ApiModelProperty("品牌名称(陕汽必须字段)")
private String brandName;
@ApiModelProperty("品牌简称(品牌首字母,但不可重复)")
private String brandShortName;
@ApiModelProperty("品牌类型key值")
@ApiModelProperty("品牌类型key值")
private String brandType;
@ApiModelProperty("品牌类型value值")
private String brandTypeValue;
@ApiModelProperty("是否有效(陕汽必须字段)")
@ApiModelProperty("是否有效(陕汽必须字段)")
private String isValidity;
@ApiModelProperty("创建组织(陕汽必须的字段)")
@ApiModelProperty("创建组织(陕汽必须的字段)")
private String createOrg;
@ApiModelProperty("使用组织(陕汽必须的字段)")
@ApiModelProperty("使用组织(陕汽必须的字段)")
private String useOrg;
@ApiModelProperty("使用组织名称")
private String useOrgName;
@ApiModelProperty("厂商sid(陕汽必须字段)")
@ApiModelProperty("厂商sid(陕汽必须字段)")
private String manufacturerSid;
}

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankMapper.java

@ -85,4 +85,6 @@ public interface BaseManufacturerBankMapper extends BaseMapper<BaseManufacturerB
List<BaseManufacturerBank> selectByManSid(String sid);
int updateBySidIsDeletes(String s);
String selectPaymentAccessNoKey(@Param("brandSid") String brandSid,@Param("actualPay") String actualPay);
}

11
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankMapper.xml

@ -175,4 +175,15 @@
UPDATE base_manufacturer_bank
SET isDelete = 1 where sid = #{s}
</update>
<select id="selectPaymentAccessNoKey" resultType="java.lang.String">
SELECT bmb.paymentAccessNoKey
FROM base_manufacturer_bank bmb
LEFT JOIN base_manufacturer bm ON bm.sid = bmb.manufacturerSid
LEFT JOIN base_vehicle_brand bvb ON bvb.manufacturerSid = bm.sid
WHERE bvb.sid = #{brandSid}
AND bmb.actualPay = #{actualPay}
AND bmb.isDelete = 0
AND bm.isDelete = 0
</select>
</mapper>

24
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankRest.java

@ -12,19 +12,6 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Project: anrui-base(安瑞基础信息模块) <br/>
* File: BaseManufacturerBankFeignFallback.java <br/>
* Class: com.yxt.anrui.base.biz.basemanufacturerbank.BaseManufacturerBankRest <br/>
* Description: 供应厂商开户行信息. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-09-10 11:31:46 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "供应厂商开户行信息")
@RestController
@RequestMapping("v1/basemanufacturerbank")
@ -80,7 +67,7 @@ public class BaseManufacturerBankRest implements BaseManufacturerBankFeign {
public ResultBean<List<BaseManActualVo>> actualList() {
ResultBean<List<BaseManActualVo>> rb = ResultBean.fireFail();
String supplierTypeValue = "主机厂";
List<BaseManActualVo> voList = baseManufacturerBankService.actualList(supplierTypeValue,DictCommonEnum.dueBank.HK_TYPE.getCode());
List<BaseManActualVo> voList = baseManufacturerBankService.actualList(supplierTypeValue, DictCommonEnum.dueBank.HK_TYPE.getCode());
return rb.success().setData(voList);
}
@ -88,7 +75,7 @@ public class BaseManufacturerBankRest implements BaseManufacturerBankFeign {
public ResultBean<List<BaseManPayVo>> payList() {
ResultBean<List<BaseManPayVo>> rb = ResultBean.fireFail();
String supplierTypeValue = "主机厂";
List<BaseManPayVo> voList = baseManufacturerBankService.payList(supplierTypeValue,DictCommonEnum.dueBank.HK_TYPE.getCode());
List<BaseManPayVo> voList = baseManufacturerBankService.payList(supplierTypeValue, DictCommonEnum.dueBank.HK_TYPE.getCode());
return rb.success().setData(voList);
}
@ -101,7 +88,12 @@ public class BaseManufacturerBankRest implements BaseManufacturerBankFeign {
@Override
public ResultBean<String> selectBankAccount(String brandSid, String manufaSaleChannelValue) {
return baseManufacturerBankService.selectBankAccount(brandSid,manufaSaleChannelValue);
return baseManufacturerBankService.selectBankAccount(brandSid, manufaSaleChannelValue);
}
@Override
public ResultBean<String> selectPaymentAccessNoKey(String brandSid, String actualPay) {
return baseManufacturerBankService.selectPaymentAccessNoKey(brandSid, actualPay);
}

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankService.java

@ -110,4 +110,10 @@ public class BaseManufacturerBankService extends MybatisBaseService<BaseManufact
public int updateBySidIsDeletes(String s) {
return baseMapper.updateBySidIsDeletes(s);
}
public ResultBean<String> selectPaymentAccessNoKey(String brandSid, String actualPay) {
ResultBean rb = ResultBean.fireFail();
String paymentAccessNoKey = baseMapper.selectPaymentAccessNoKey(brandSid, actualPay);
return rb.success().setData(paymentAccessNoKey);
}
}

25
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretware/BaseManufacturerRetwareRest.java

@ -33,31 +33,14 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.anrui.base.api.basemanufacturerretware.BaseManufacturerRetware;
import com.yxt.anrui.base.api.basemanufacturerretware.BaseManufacturerRetwareQuery;
import com.yxt.anrui.base.api.basemanufacturerretware.BaseManufacturerRetwareVo;
import com.yxt.anrui.base.api.basemanufacturerretware.BaseManufacturerRetwareDetailsVo;
import com.yxt.anrui.base.api.basemanufacturerretware.BaseManufacturerRetwareDto;
import com.yxt.anrui.base.api.basemanufacturerretware.BaseManufacturerRetwareFeign;
/**
* Project: anrui-base(厂家退库) <br/>
* File: BaseManufacturerRetwareFeignFallback.java <br/>
* Class: com.yxt.anrui.base.biz.basemanufacturerretware.BaseManufacturerRetwareRest <br/>
* Description: 厂家退库表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-07-05 17:02:32 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "厂家退库表")
@RestController("com.yxt.anrui.base.biz.basemanufacturerretware.BaseManufacturerRetwareRest")
@RestController
@RequestMapping("v1/basemanufacturerretware")
public class BaseManufacturerRetwareRest implements BaseManufacturerRetwareFeign {
@ -104,10 +87,10 @@ public class BaseManufacturerRetwareRest implements BaseManufacturerRetwareFeign
return baseManufacturerRetwareService.fetchAll(sid);
}
@ApiOperation("生成厂家退库库单pdf")
@PostMapping("/withdrawalPdf")
@ApiOperation("生成厂家退库库单pdf")
@PostMapping("/withdrawalPdf")
@Override
public ResultBean<String> withdrawalPdf(String cgtkdSid, String printerType) {
return baseManufacturerRetwareService.withdrawalPdf(cgtkdSid,printerType);
return baseManufacturerRetwareService.withdrawalPdf(cgtkdSid, printerType);
}
}

6
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/paymentAdd.vue

@ -445,7 +445,6 @@ export default {
paymentBtn: false, // -- --
paymentInformation: { //
index: '',
liquidationPayment: '', //
list: []
}
}
@ -698,20 +697,18 @@ export default {
this.paymentVisible = true
this.paymentBtn = true
this.paymentInformation.index = index
this.paymentInformation.liquidationPayment = this.formobj.createTime + row.paymentType + '平仓款'
this.paymentInformation.list = JSON.parse(JSON.stringify(row.finPaymentapplyDetailsBelowList))
},
handleLookPayment(row, index) {
this.paymentVisible = true
this.paymentBtn = false
this.paymentInformation.inde = index
this.paymentInformation.liquidationPayment = this.formobj.createTime + row.paymentType + '平仓款'
this.paymentInformation.list = JSON.parse(JSON.stringify(row.finPaymentapplyDetailsBelowList))
},
paymentAdd() {
this.paymentVisible = false
this.viewState = 3
this.$refs['divPaymentInformation'].showAdd(this.formobj.useOrgSid, this.paymentInformation.liquidationPayment)
this.$refs['divPaymentInformation'].showAdd(this.formobj.useOrgSid)
},
backInformation(value) {
this.viewState = 1
@ -765,7 +762,6 @@ export default {
this.paymentBtn = false
this.paymentInformation = {
index: '',
liquidationPayment: '',
list: []
}
},

3
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/paymentInfo.vue

@ -287,7 +287,6 @@ export default {
paymentVisible: false, // --
paymentInformation: { //
index: '',
liquidationPayment: '', //
list: []
}
}
@ -317,7 +316,6 @@ export default {
handleLookPayment(row, index) {
this.paymentVisible = true
this.paymentInformation.inde = index
this.paymentInformation.liquidationPayment = this.formobj.createTime + row.paymentType + '平仓款'
this.paymentInformation.list = JSON.parse(JSON.stringify(row.finPaymentapplyDetailsBelowList))
},
resetStateByInformation() {
@ -333,7 +331,6 @@ export default {
this.paymentVisible = false
this.paymentInformation = {
index: '',
liquidationPayment: '',
list: []
}
},

18
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/relation/paymentInformationAdd.vue

@ -1,4 +1,4 @@
<temp<template>
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
@ -61,7 +61,7 @@
<el-col :span="12">
<div class="span-sty"><span class="icon">*</span>后期是否有平仓付款</div>
<el-form-item prop="isPay">
<el-radio-group class="addinputInfo" v-model="formobj.isPay">
<el-radio-group class="addinputInfo" disabled v-model="formobj.isPay">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
@ -80,7 +80,6 @@
<el-button size="mini" type="danger" @click="toDelete(scope.$index)">删除</el-button>
</template>
</el-table-column>
<el-table-column prop="costTitleValue" label="平仓款名称" align="center" />
<el-table-column label="期数" align="center">
<template slot-scope="scope">
<el-input @keyup.native="scope.row.period = getNumber(scope.row.period, 2)" v-model="scope.row.period" clearable placeholder="" />
@ -153,7 +152,7 @@
<script>
import req from '@/api/anruifinmanagement/payment'
import {getTypeValueList, typeValues} from '@/api/jichuxinxi/dictcommons'
import { getTypeValueList, typeValues } from '@/api/jichuxinxi/dictcommons'
export default {
name: 'PaymentInformationAdd',
@ -167,7 +166,6 @@ export default {
payment_list: [],
receiveCompany_list: [],
businessType_list: [],
liquidationPayment: '', //
formobj: {
sid: '', // sid
costTitleKey: '', //
@ -222,13 +220,12 @@ export default {
}
})
},
showAdd(useOrgSid, liquidationPayment) {
showAdd(useOrgSid) {
this.viewTitle = '【新增】付款信息'
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.init()
this.liquidationPayment = liquidationPayment
this.temp.useOrgSid = useOrgSid
this.selectByUseOrgSid(useOrgSid)
},
@ -269,8 +266,14 @@ export default {
const choose = this.payment_list.filter((item) => item.dictValue === value)
if (choose !== null && choose.length > 0) {
this.formobj.paymentTypeKey = choose[0].dictKey
if (value === '银行保证金') {
this.formobj.isPay = '1'
} else {
this.formobj.isPay = '0'
}
} else {
this.formobj.paymentTypeKey = ''
this.formobj.isPay = ''
}
},
receiveCompanyChange(value) {
@ -311,7 +314,6 @@ export default {
this.formobj.finPaymentapplyDetailsBelowEveList.push({
sid: '', // sid
costTitleKey: '', //
costTitleValue: this.liquidationPayment, //
detailSid: '', // sid
openDate: '', //
period: '', //

1
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/fukuanshenqing/relation/paymentInformationInfo.vue

@ -53,7 +53,6 @@
<div class="title">平仓信息</div>
<el-table :key="tableKey" :data="formobj.finPaymentapplyDetailsBelowEveList" :index="index" border style="width: 100%">
<el-table-column fixed width="80" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column prop="costTitleValue" label="平仓款名称" align="center" />
<el-table-column prop="period" label="期数" align="center" />
<el-table-column prop="exePayDate" label="平仓付款日期" align="center" />
<el-table-column prop="exePayPrice" label="平仓付款金额" align="center" />

24
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentInformation/paymentInformation.vue

@ -15,8 +15,8 @@
<el-form-item label="银行账号">
<el-input v-model="listQuery.params.receivingAccount" placeholder="" clearable/>
</el-form-item>
<el-form-item label="业务类型">
<el-input v-model="listQuery.params.businessTypeValue" placeholder="" clearable/>
<el-form-item label="开户行">
<el-input v-model="listQuery.params.bank" placeholder="" clearable/>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
@ -44,7 +44,7 @@
<el-table-column prop="companyName" label="单位名称" align="center" />
<el-table-column prop="bank" label="开户行" align="center" />
<el-table-column prop="receivingAccount" label="银行账号" align="center" />
<el-table-column prop="businessTypeValue" label="业务类型" align="center" />
<el-table-column prop="bankShortName" label="银行简称" align="center" />
<el-table-column prop="remarks" label="备注" align="center" />
</el-table>
</div>
@ -81,12 +81,8 @@
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">业务类型</div>
<el-form-item>
<el-select class="addinputInfo" v-model="formobj.businessTypeValue" placeholder="请选择" @change="businessTypeChange" clearable filterable>
<el-option v-for="item in businessType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
<div class="span-sty">银行简称</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.bankShortName" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">备注</div>
@ -125,8 +121,7 @@ export default {
companyName: '', //
bank: '', //
receivingAccount: '', //
businessTypeKey: '', // key
businessTypeValue: '', // value
bankShortName: '',
remarks: '', //
useOrgSid: '', // sid
useOrgName: ''
@ -171,7 +166,7 @@ export default {
params: {
companyCode: '',
companyName: '',
businessTypeValue: '',
bank: '',
orgPath: '',
menuUrl: '',
userSid: ''
@ -265,7 +260,7 @@ export default {
params: {
companyCode: '',
companyName: '',
businessTypeValue: '',
bank: '',
orgPath: '',
menuUrl: '',
userSid: ''
@ -326,8 +321,7 @@ export default {
companyName: '', //
bank: '', //
receivingAccount: '', //
businessTypeKey: '', // key
businessTypeValue: '', // value
bankShortName: '',
remarks: '', //
useOrgSid: '', // sid
useOrgName: ''

29
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpayment/FinPayment.java

@ -31,19 +31,6 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-fin(付款信息管理) <br/>
* File: FinPayment.java <br/>
* Class: com.yxt.anrui.fin.api.finpayment.FinPayment <br/>
* Description: 付款信息管理. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-13 14:27:54 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "付款信息管理", description = "付款信息管理")
@TableName("fin_payment")
@ -51,19 +38,17 @@ public class FinPayment extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("单位编码")
private String companyCode; // 单位编码
private String companyCode;
@ApiModelProperty("单位名称")
private String companyName; // 单位名称
private String companyName;
@ApiModelProperty("开户行")
private String bank; // 开户行
private String bank;
@ApiModelProperty("收款银行账号")
private String receivingAccount; // 收款银行账号
@ApiModelProperty("业务类型key")
private String businessTypeKey; // 业务类型key
@ApiModelProperty("业务类型value")
private String businessTypeValue; // 业务类型value
private String receivingAccount;
@ApiModelProperty("银行简称")
private String bankShortName;
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;

41
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpayment/FinPaymentDetailsVo.java

@ -25,47 +25,30 @@
*********************************************************/
package com.yxt.anrui.fin.api.finpayment;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-fin(付款信息管理) <br/>
* File: FinPaymentVo.java <br/>
* Class: com.yxt.anrui.fin.api.finpayment.FinPaymentVo <br/>
* Description: 付款信息管理 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-13 14:27:54 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "付款信息管理 视图数据详情", description = "付款信息管理 视图数据详情")
public class FinPaymentDetailsVo implements Vo {
private String sid; // sid
private String sid;
private String remarks;
@ApiModelProperty("单位编码")
private String companyCode; // 单位编码
@ApiModelProperty("单位名称")
private String companyName; // 单位名称
@ApiModelProperty("开户行")
private String bank; // 开户行
@ApiModelProperty("收款银行账号")
private String receivingAccount; // 收款银行账号
@ApiModelProperty("业务类型key")
private String businessTypeKey; // 业务类型key
@ApiModelProperty("业务类型value")
private String businessTypeValue; // 业务类型value
@ApiModelProperty("单位编码")
private String companyCode;
@ApiModelProperty("单位名称")
private String companyName;
@ApiModelProperty("开户行")
private String bank;
@ApiModelProperty("收款银行账号")
private String receivingAccount;
@ApiModelProperty("银行简称")
private String bankShortName;
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;
}

33
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpayment/FinPaymentDto.java

@ -25,47 +25,30 @@
*********************************************************/
package com.yxt.anrui.fin.api.finpayment;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-fin(付款信息管理) <br/>
* File: FinPaymentDto.java <br/>
* Class: com.yxt.anrui.fin.api.finpayment.FinPaymentDto <br/>
* Description: 付款信息管理 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-13 14:27:54 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "付款信息管理 数据传输对象", description = "付款信息管理 数据传输对象")
public class FinPaymentDto implements Dto {
private String sid; // sid
private String sid;
private String remarks;
@ApiModelProperty("单位编码")
private String companyCode; // 单位编码
private String companyCode;
@ApiModelProperty("单位名称")
private String companyName; // 单位名称
private String companyName;
@ApiModelProperty("开户行")
private String bank; // 开户行
private String bank;
@ApiModelProperty("收款银行账号")
private String receivingAccount; // 收款银行账号
@ApiModelProperty("业务类型key")
private String businessTypeKey; // 业务类型key
@ApiModelProperty("业务类型value")
private String businessTypeValue; // 业务类型value
private String receivingAccount;
@ApiModelProperty("银行简称")
private String bankShortName;
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;
}

18
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpayment/FinPaymentFeign.java

@ -35,19 +35,6 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: anrui-fin(付款信息管理) <br/>
* File: FinPaymentFeign.java <br/>
* Class: com.yxt.anrui.fin.api.finpayment.FinPaymentFeign <br/>
* Description: 付款信息管理. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-13 14:27:54 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "付款信息管理")
@FeignClient(
contextId = "anrui-fin-FinPayment",
@ -79,4 +66,9 @@ public interface FinPaymentFeign {
@GetMapping("/selectByUseOrgSid")
@ResponseBody
public ResultBean<List<FinPaymentDetailsVo>> selectByUseOrgSid(@RequestParam("useOrgSid") String useOrgSid);
@ApiOperation("修改平仓款开通日期")
@PostMapping("/updateOpenDate")
@ResponseBody
public ResultBean updateOpenDate(@RequestParam("sid") String sid, @RequestParam("openDate") String openDate);
}

19
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpayment/FinPaymentQuery.java

@ -25,26 +25,11 @@
*********************************************************/
package com.yxt.anrui.fin.api.finpayment;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-fin(付款信息管理) <br/>
* File: FinPaymentQuery.java <br/>
* Class: com.yxt.anrui.fin.api.finpayment.FinPaymentQuery <br/>
* Description: 付款信息管理 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-13 14:27:54 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "付款信息管理 查询条件", description = "付款信息管理 查询条件")
public class FinPaymentQuery implements Query {
@ -53,8 +38,8 @@ public class FinPaymentQuery implements Query {
private String companyName;
@ApiModelProperty("收款银行账号")
private String receivingAccount;
@ApiModelProperty("业务类型value")
private String businessTypeValue;
@ApiModelProperty("开户行")
private String bank;
private String userSid;
private String orgPath;

19
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpayment/FinPaymentVo.java

@ -25,26 +25,11 @@
*********************************************************/
package com.yxt.anrui.fin.api.finpayment;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-fin(付款信息管理) <br/>
* File: FinPaymentVo.java <br/>
* Class: com.yxt.anrui.fin.api.finpayment.FinPaymentVo <br/>
* Description: 付款信息管理 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-13 14:27:54 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "付款信息管理 视图数据对象", description = "付款信息管理 视图数据对象")
public class FinPaymentVo implements Vo {
@ -59,8 +44,8 @@ public class FinPaymentVo implements Vo {
private String bank;
@ApiModelProperty("收款银行账号")
private String receivingAccount;
@ApiModelProperty("业务类型value")
private String businessTypeValue;
@ApiModelProperty("银行简称")
private String bankShortName;
@ApiModelProperty("备注")
private String remarks;
}

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentapplydetails/FinPaymentapplyDetailVo.java

@ -1,11 +1,9 @@
package com.yxt.anrui.fin.api.finpaymentapplydetails;
import com.yxt.anrui.fin.api.finpaymentapplydetailsbelow.FinPaymentapplyDetailsBelowDetailsVo;
import com.yxt.anrui.fin.api.finpaymentapplydetailsbelow.FinPaymentapplyDetailsBelowDto;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;

47
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentapplydetailsbelow/FinPaymentapplyDetailsBelow.java

@ -26,53 +26,50 @@
package com.yxt.anrui.fin.api.finpaymentapplydetailsbelow;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* Project: anrui-fin(付款明细) <br/>
* File: FinPaymentapplyDetailsBelow.java <br/>
* Class: com.yxt.anrui.fin.api.finpaymentapplydetailsbelow.FinPaymentapplyDetailsBelow <br/>
* Description: 付款申请明细-明细. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-12 16:08:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "付款申请明细-明细", description = "付款申请明细-明细")
@TableName("fin_paymentapply_details_below")
public class FinPaymentapplyDetailsBelow extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("款项名称,数据字典")
@ApiModelProperty("款项名称,数据字典")
private String costTitleKey; // 款项名称,数据字典
@ApiModelProperty("款项名称")
@ApiModelProperty("款项名称")
private String costTitleValue; // 款项名称
@ApiModelProperty("付款方式key")
@ApiModelProperty("付款方式key")
private String paymentTypeKey; // 付款方式key
@ApiModelProperty("付款方式value")
@ApiModelProperty("付款方式value")
private String paymentType; // 付款方式value
@ApiModelProperty("收款单位名称")
@ApiModelProperty("收款单位名称")
private String receiveCompany; // 收款单位名称
@ApiModelProperty("收款单位sid")
@ApiModelProperty("收款单位sid")
private String receiveCompanySid; // 收款单位sid
@ApiModelProperty("开户行")
@ApiModelProperty("开户行")
private String bank; // 开户行
@ApiModelProperty("收款银行账号")
@ApiModelProperty("收款银行账号")
private String receivingAccount; // 收款银行账号
@ApiModelProperty("付款金额")
@ApiModelProperty("付款金额")
private BigDecimal payAccount; // 付款金额
@ApiModelProperty("付款申请明细sid")
@ApiModelProperty("付款申请明细sid")
private String detailSid; // 付款申请明细sid
@ApiModelProperty("后期是否有平仓付款")
@ApiModelProperty("后期是否有平仓付款")
private String isPay; // 后期是否有平仓付款
@ApiModelProperty("平仓款名称")
private String closFundName;
@ApiModelProperty("开通日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date openDate;
@ApiModelProperty("付款单位sid")
private String payCompanySid;
@ApiModelProperty("付款单位")
private String payCompany;
}

27
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentapplydetailsbelow/FinPaymentapplyDetailsBelowDetailsVo.java

@ -25,30 +25,16 @@
*********************************************************/
package com.yxt.anrui.fin.api.finpaymentapplydetailsbelow;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.anrui.fin.api.finpaymentapplydetailsbeloweve.FinPaymentapplyDetailsBelowEveDetailsVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* Project: anrui-fin(付款明细) <br/>
* File: FinPaymentapplyDetailsBelowVo.java <br/>
* Class: com.yxt.anrui.fin.api.finpaymentapplydetailsbelow.FinPaymentapplyDetailsBelowVo <br/>
* Description: 付款申请明细-明细 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-12 16:08:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "付款申请明细-明细 视图数据详情", description = "付款申请明细-明细 视图数据详情")
public class FinPaymentapplyDetailsBelowDetailsVo implements Vo {
@ -79,6 +65,15 @@ public class FinPaymentapplyDetailsBelowDetailsVo implements Vo {
private String detailSid; // 付款申请明细sid
@ApiModelProperty("后期是否有平仓付款")
private String isPay; // 后期是否有平仓付款
@ApiModelProperty("平仓款名称")
private String closFundName;
@ApiModelProperty("开通日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date openDate;
@ApiModelProperty("付款单位sid")
private String payCompanySid;
@ApiModelProperty("付款单位")
private String payCompany;
@ApiModelProperty
private List<FinPaymentapplyDetailsBelowEveDetailsVo> finPaymentapplyDetailsBelowEveList;

47
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentapplydetailsbelow/FinPaymentapplyDetailsBelowDto.java

@ -25,7 +25,7 @@
*********************************************************/
package com.yxt.anrui.fin.api.finpaymentapplydetailsbelow;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.anrui.fin.api.finpaymentapplydetailsbeloweve.FinPaymentapplyDetailsBelowEveDetailsVo;
import com.yxt.anrui.fin.api.finpaymentapplydetailsbeloweve.FinPaymentapplyDetailsBelowEveDto;
import com.yxt.common.core.dto.Dto;
@ -35,21 +35,9 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* Project: anrui-fin(付款明细) <br/>
* File: FinPaymentapplyDetailsBelowDto.java <br/>
* Class: com.yxt.anrui.fin.api.finpaymentapplydetailsbelow.FinPaymentapplyDetailsBelowDto <br/>
* Description: 付款申请明细-明细 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-12 16:08:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "付款申请明细-明细 数据传输对象", description = "付款申请明细-明细 数据传输对象")
public class FinPaymentapplyDetailsBelowDto implements Dto {
@ -58,28 +46,37 @@ public class FinPaymentapplyDetailsBelowDto implements Dto {
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("款项名称,数据字典")
@ApiModelProperty("款项名称,数据字典")
private String costTitleKey; // 款项名称,数据字典
@ApiModelProperty("款项名称")
@ApiModelProperty("款项名称")
private String costTitleValue; // 款项名称
@ApiModelProperty("付款方式key")
@ApiModelProperty("付款方式key")
private String paymentTypeKey; // 付款方式key
@ApiModelProperty("付款方式value")
@ApiModelProperty("付款方式value")
private String paymentType; // 付款方式value
@ApiModelProperty("收款单位名称")
@ApiModelProperty("收款单位名称")
private String receiveCompany; // 收款单位名称
@ApiModelProperty("收款单位sid")
@ApiModelProperty("收款单位sid")
private String receiveCompanySid; // 收款单位sid
@ApiModelProperty("开户行")
@ApiModelProperty("开户行")
private String bank; // 开户行
@ApiModelProperty("收款银行账号")
@ApiModelProperty("收款银行账号")
private String receivingAccount; // 收款银行账号
@ApiModelProperty("付款金额")
@ApiModelProperty("付款金额")
private BigDecimal payAccount; // 付款金额
@ApiModelProperty("付款申请明细sid")
@ApiModelProperty("付款申请明细sid")
private String detailSid; // 付款申请明细sid
@ApiModelProperty("后期是否有平仓付款")
@ApiModelProperty("后期是否有平仓付款")
private String isPay; // 后期是否有平仓付款
@ApiModelProperty("平仓款名称")
private String closFundName;
@ApiModelProperty("开通日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date openDate;
@ApiModelProperty("付款单位sid")
private String payCompanySid;
@ApiModelProperty("付款单位")
private String payCompany;
@ApiModelProperty
private List<FinPaymentapplyDetailsBelowEveDto> finPaymentapplyDetailsBelowEveList;

14
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDto.java

@ -25,25 +25,11 @@
*********************************************************/
package com.yxt.anrui.fin.api.finpaymentrecord;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-fin(财务) <br/>
* File: FinPaymentrecordDto.java <br/>
* Class: com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto <br/>
* Description: fin_paymentrecord 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-06-23 13:45:10 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "fin_paymentrecord 数据传输对象", description = "fin_paymentrecord 数据传输对象")
public class FinPaymentrecordDto implements Dto {

26
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpayment/FinPaymentRest.java

@ -25,6 +25,7 @@
*********************************************************/
package com.yxt.anrui.fin.biz.finpayment;
import com.yxt.anrui.fin.biz.finpaymentapplydetailsbeloweve.FinPaymentapplyDetailsBelowEveService;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -32,29 +33,13 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.anrui.fin.api.finpayment.FinPayment;
import com.yxt.anrui.fin.api.finpayment.FinPaymentQuery;
import com.yxt.anrui.fin.api.finpayment.FinPaymentVo;
import com.yxt.anrui.fin.api.finpayment.FinPaymentDetailsVo;
import com.yxt.anrui.fin.api.finpayment.FinPaymentDto;
import com.yxt.anrui.fin.api.finpayment.FinPaymentFeign;
/**
* Project: anrui-fin(付款信息管理) <br/>
* File: FinPaymentFeignFallback.java <br/>
* Class: com.yxt.anrui.fin.biz.finpayment.FinPaymentRest <br/>
* Description: 付款信息管理. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-13 14:27:54 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "付款信息管理")
@RestController
@RequestMapping("v1/finpayment")
@ -62,6 +47,8 @@ public class FinPaymentRest implements FinPaymentFeign {
@Autowired
private FinPaymentService finPaymentService;
@Autowired
private FinPaymentapplyDetailsBelowEveService finPaymentapplyDetailsBelowEveService;
@Override
@ApiOperation("根据条件分页查询数据的列表")
@ -103,4 +90,11 @@ public class FinPaymentRest implements FinPaymentFeign {
List<FinPaymentDetailsVo> voList = finPaymentService.selectByUseOrgSid(useOrgSid);
return rb.success().setData(voList);
}
@Override
public ResultBean updateOpenDate(String sid, String openDate) {
ResultBean rb = ResultBean.fireFail();
finPaymentapplyDetailsBelowEveService.updateOpenDate(sid,openDate);
return rb.success();
}
}

3
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentapply/FinPaymentapplyMapper.xml

@ -104,7 +104,8 @@
fp.isSales,
fp.isSettle,
fp.useOrgSid,
fp.orgSidPath
fp.orgSidPath,
fp.isManageSp
from fin_paymentapply fp
where fp.sid = #{sid}
</select>

15
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentapply/FinPaymentapplyRest.java

@ -28,7 +28,6 @@ package com.yxt.anrui.fin.biz.finpaymentapply;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.fin.api.finpaymentapply.*;
import com.yxt.anrui.fin.api.finpaymentapply.flow.*;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -37,22 +36,8 @@ import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Project: anrui-fin(财务) <br/>
* File: FinPaymentapplyFeignFallback.java <br/>
* Class: com.yxt.anrui.fin.biz.finpaymentapply.FinPaymentapplyRest <br/>
* Description: fin_paymentapply. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-06-23 13:45:10 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "付款申请")
@RestController
@RequestMapping("v1/finpaymentapply")

29
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentapply/FinPaymentapplyService.java

@ -30,6 +30,7 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basemanufacturerbank.BaseManufacturerBankFeign;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.common.enums.BillTypeEnum;
import com.yxt.anrui.base.common.utils.Rule;
@ -97,19 +98,6 @@ import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
* Project: anrui-fin(财务) <br/>
* File: FinPaymentapplyService.java <br/>
* Class: com.yxt.anrui.fin.biz.finpaymentapply.FinPaymentapplyService <br/>
* Description: fin_paymentapply 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-06-23 13:45:10 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class FinPaymentapplyService extends MybatisBaseService<FinPaymentapplyMapper, FinPaymentapply> {
@ -147,6 +135,8 @@ public class FinPaymentapplyService extends MybatisBaseService<FinPaymentapplyMa
private MessageFeign messageFeign;
@Autowired
private BaseVehicleFeign baseVehicleFeign;
@Autowired
private BaseManufacturerBankFeign baseManufacturerBankFeign;
public PagerVo<FinPaymentapplyVo> listPageVo(PagerQuery<FinPaymentapplyQuery> pq) {
FinPaymentapplyQuery query = pq.getParams();
@ -644,6 +634,9 @@ public class FinPaymentapplyService extends MybatisBaseService<FinPaymentapplyMa
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
//ToDo:到出纳记录
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
finPaymentapply = fetchBySid(bv.getBusinessSid());
finPaymentapply.setFinishTime(new Date());
baseMapper.updateById(finPaymentapply);//更新办结日期
FinPaymentapplyDetailsVo vo = fetchDetailsVoBySid(bv.getBusinessSid());
FinPaymentrecordDto finPaymentrecordDto = new FinPaymentrecordDto();
finPaymentrecordDto.setCreateBySid(finPaymentapply.getCreateBySid());
@ -669,6 +662,15 @@ public class FinPaymentapplyService extends MybatisBaseService<FinPaymentapplyMa
//款项名称
finPaymentrecordDto.setCostTypeKey(finPaymentapplyDetailVo.getCostTitleKey());
finPaymentrecordDto.setCostTypeValue(finPaymentapplyDetailVo.getCostTitleValue());
if ("009".equals(finPaymentapplyDetailVo.getCostTitleKey())) {
String paymentAccessNoKey = baseManufacturerBankFeign.selectPaymentAccessNoKey(finPaymentapply.getCarBrandSid(), finPaymentapplyDetailVo.getActualPay()).getData();
finPaymentrecordDto.setPayChannel(paymentAccessNoKey);
finPaymentrecordDto.setPayCostType("payChannel");
} else {
finPaymentrecordDto.setPayChannel(finPaymentapplyDetailVo.getCostTitleKey());
finPaymentrecordDto.setPayCostType("payCostType");
}
finPaymentrecordDto.setFinDataType(0);
//款项详情
finPaymentrecordDto.setCostTitleKey(finPaymentapplyDetailVo.getCostTitleKey());
finPaymentrecordDto.setCostTitleValue(finPaymentapplyDetailVo.getCostTitleValue());
@ -699,6 +701,7 @@ public class FinPaymentapplyService extends MybatisBaseService<FinPaymentapplyMa
finPaymentrecordService.saveDto(finPaymentrecordDto);
List<FinPaymentapplyDetailsBelowDetailsVo> finPaymentapplyDetailsBelowDetailsVos = finPaymentapplyDetailsBelowService.selByMainSid(finPaymentapplyDetailVo.getSid());
for (FinPaymentapplyDetailsBelowDetailsVo finPaymentapplyDetailsBelowDetailsVo : finPaymentapplyDetailsBelowDetailsVos) {
finPaymentrecordDto.setFinDataType(1);
//款项名称
finPaymentrecordDto.setCostTypeKey(finPaymentapplyDetailsBelowDetailsVo.getCostTitleKey());
finPaymentrecordDto.setCostTypeValue(finPaymentapplyDetailsBelowDetailsVo.getCostTitleValue());

3
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentapplydetails/FinPaymentapplyDetailsService.java

@ -1,6 +1,7 @@
package com.yxt.anrui.fin.biz.finpaymentapplydetails;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.yxt.anrui.fin.api.finpaymentapply.FinPaymentapply;
import com.yxt.anrui.fin.api.finpaymentapplydetails.AppFinPaymentapplyDetailVo;
import com.yxt.anrui.fin.api.finpaymentapplydetails.FinPaymentapplyDetailDto;
@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
@ -53,6 +55,7 @@ public class FinPaymentapplyDetailsService extends MybatisBaseService<FinPayment
List<FinPaymentapplyDetailsBelowDto> finPaymentapplyDetailsBelowList = dto.getFinPaymentapplyDetailsBelowList();
for (FinPaymentapplyDetailsBelowDto finPaymentapplyDetailsBelowDto : finPaymentapplyDetailsBelowList) {
finPaymentapplyDetailsBelowDto.setDetailSid(finPaymentapplyDetails.getSid());
finPaymentapplyDetailsBelowDto.setClosFundName(DateUtil.formatDate(new Date()) + dto.getPaymentType() + dto.getBank() + "出票" + new BigDecimal(dto.getPayAccount()).divide(new BigDecimal(10000)) + "万元");
String belowSid = finPaymentapplyDetailsBelowService.insertByDto(finPaymentapplyDetailsBelowDto);
List<FinPaymentapplyDetailsBelowEveDto> finPaymentapplyDetailsBelowEveList = finPaymentapplyDetailsBelowDto.getFinPaymentapplyDetailsBelowEveList();
for (FinPaymentapplyDetailsBelowEveDto finPaymentapplyDetailsBelowEveDto : finPaymentapplyDetailsBelowEveList) {

18
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentapplydetailsbeloweve/FinPaymentapplyDetailsBelowEveMapper.java

@ -35,22 +35,9 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.anrui.fin.api.finpaymentapplydetailsbeloweve.FinPaymentapplyDetailsBelowEve;
import com.yxt.anrui.fin.api.finpaymentapplydetailsbeloweve.FinPaymentapplyDetailsBelowEveVo;
import org.apache.ibatis.annotations.Update;
import java.util.List;
/**
* Project: anrui-fin(平仓) <br/>
* File: FinPaymentapplyDetailsBelowEveMapper.java <br/>
* Class: com.yxt.anrui.fin.biz.finpaymentapplydetailsbeloweve.FinPaymentapplyDetailsBelowEveMapper <br/>
* Description: 付款申请明细-明细-平仓. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-13 10:03:07 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface FinPaymentapplyDetailsBelowEveMapper extends BaseMapper<FinPaymentapplyDetailsBelowEve> {
@ -58,4 +45,7 @@ public interface FinPaymentapplyDetailsBelowEveMapper extends BaseMapper<FinPaym
@Select("select * from fin_paymentapply_details_below_eve where detailSid = #{mainSid}")
List<FinPaymentapplyDetailsBelowEveDetailsVo> selByMainSid(String mainSid);
@Update("update fin_paymentapply_details_below_eve set openDate = #{openDate} where sid = #{sid}")
void updateOpenDate(@Param("sid") String sid,@Param("openDate") String openDate);
}

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentapplydetailsbeloweve/FinPaymentapplyDetailsBelowEveService.java

@ -224,4 +224,8 @@ public class FinPaymentapplyDetailsBelowEveService extends MybatisBaseService<Fi
public List<FinPaymentapplyDetailsBelowEveDetailsVo> selByMainSid(String mainSid) {
return baseMapper.selByMainSid(mainSid);
}
public void updateOpenDate(String sid, String openDate) {
baseMapper.updateOpenDate(sid, openDate);
}
}

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyFeign.java

@ -112,7 +112,7 @@ public interface LoanSettleApplyFeign {
);
@ApiOperation(value = "推送资方结清款凭证")
@PostMapping(value = "/pushBankVoucher")
@PostMapping(value = "/pushBankReturnVoucher")
ResultBean<RskVoucher> pushBankReturnVoucher(@RequestParam("sid") String sid,
@RequestParam("accountNumber") String accountNumber,
@RequestParam("payTypeCode") String payTypeCode,

26
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml

@ -18,13 +18,13 @@
a1.dueMoney AS bankMonthRep,
MIN(a1.dueDate) AS firstBeDate, -- 改为取最早逾期日期
COUNT(a1.sid) AS beOverduePeriod,
SUM(a1.yq_total) +
ROUND(SUM(a1.yq_total) +
COALESCE(lbpv_sum.bankBeInter_sum, 0) +
COALESCE(lfd_sum.fund_sum, 0) AS beOverdueMoney,
CAST(COALESCE(lfd_sum.fund_sum, 0) AS DECIMAL(10,2)),2) AS beOverdueMoney,
ROUND(
(SUM(a1.yq_total) + COALESCE(lbpv_sum.bankBeInter_sum, 0) + COALESCE(lfd_sum.fund_sum, 0)) /
MAX(a1.qjyh), -- 保证聚合正确性
1
2
) AS beOverdueMoneyAndPeriod,
SUM(a1.yd_dkje) AS advMoney,
SUM(a1.yd_zjzyf) AS fundPossCostMoney,
@ -62,7 +62,12 @@
WHEN 1 THEN '控制成功'
WHEN 2 THEN '控制失败'
WHEN 3 THEN '已解控'
END AS lockCarState
END AS lockCarState,
CASE
WHEN lrpd.dueDate > lrpd.updateDate or lrpd.updateDate IS NULL THEN '1'
WHEN lrpd.dueDate &lt;= lrpd.updateDate AND (c.outstandingMoney + IFNULL(c.fund,0) + IFNULL(lrpd.paymentInterest,0)) > 0 THEN '0'
WHEN lrpd.dueDate &lt;= lrpd.updateDate AND (c.outstandingMoney + IFNULL(c.fund,0) + IFNULL(lrpd.paymentInterest,0)) &lt;= 0 THEN '1'
END AS nowOverdue
FROM loan_repayment_plan_details lrpd
LEFT JOIN loan_repayment_history lrh
ON lrh.planDetailSid = lrpd.sid
@ -135,10 +140,13 @@
MAX(a1.vehMark) AS carNum,
MIN(a1.dueDate) AS firstBeDate, -- 根据业务需求确定合适的聚合函数
COUNT(a1.sid) AS beOverduePeriod,
CAST(SUM(a1.yq_total) AS DECIMAL(10,2)) + CAST(IFNULL(MAX(a1.bankBeInter_sum), 0) AS DECIMAL(10,2)) + CAST(IFNULL(MAX(a1.fund_sum), 0) AS DECIMAL(10,2)) AS beOverdueMoney,
ROUND(
SUM(a1.yq_total) + IFNULL(MAX(a1.bankBeInter_sum), 0) + IFNULL(MAX(a1.fund_sum), 0),
2
) AS beOverdueMoney,
ROUND(
(SUM(a1.yq_total) + IFNULL(MAX(a1.bankBeInter_sum), 0) + IFNULL(MAX(a1.fund_sum), 0)) / MAX(a1.qjyh),
1
2
) AS beOverdueMoneyAndPeriod,
a1.busVinSid AS saleVehSid,
MAX(a1.salesOrderSid) AS salesOrderSid,
@ -263,13 +271,13 @@
a1.dueMoney AS bankMonthRep,
MIN(a1.dueDate) AS firstBeDate, -- 改为取最早逾期日期
COUNT(a1.sid) AS beOverduePeriod,
SUM(a1.yq_total) +
ROUND(SUM(a1.yq_total) +
COALESCE(lbpv_sum.bankBeInter_sum, 0) +
COALESCE(lfd_sum.fund_sum, 0) AS beOverdueMoney,
CAST(COALESCE(lfd_sum.fund_sum, 0) AS DECIMAL(10,2)),2) AS beOverdueMoney,
ROUND(
(SUM(a1.yq_total) + COALESCE(lbpv_sum.bankBeInter_sum, 0) + COALESCE(lfd_sum.fund_sum, 0)) /
MAX(a1.qjyh), -- 保证聚合正确性
1
2
) AS beOverdueMoneyAndPeriod,
SUM(a1.yd_dkje) AS advMoney,
SUM(a1.yd_zjzyf) AS fundPossCostMoney,

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

@ -3,7 +3,6 @@ package com.yxt.anrui.riskcenter.biz.loansettleapply;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
@ -3633,6 +3632,9 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
if (formatDate.compareTo(settingDate) > 0) {
return rb.setMsg("只能在结清申请发起当日确认客户结清,若需结清,请将结清日期修改为当天,重新发起结清申请!");
}
if (loanSettleApply.getState().intValue() == 1) {
return rb.setMsg("该申请已完成客户确认结清,请勿重复点击!");
}
loanSettleApply.setState(1);
baseMapper.updateById(loanSettleApply);
//结转剩余保证金

105
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundquery/ScmApplyInboundQueryRest.java

@ -34,77 +34,62 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: anrui-scm(车辆入库单查询) <br/>
* File: ScmApplyInboundQueryFeignFallback.java <br/>
* Class: com.yxt.anrui.scm.biz.scmapplyinboundquery.ScmApplyInboundQueryRest <br/>
* Description: 车辆入库单查询. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-01-28 15:55:31 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "车辆入库单查询")
@RestController("com.yxt.anrui.scm.biz.scmapplyinboundquery.ScmApplyInboundQueryRest")
@RestController
@RequestMapping("v1/scmapplyinboundquery")
public class ScmApplyInboundQueryRest implements ScmApplyInboundQueryFeign {
@Autowired
private ScmApplyInboundQueryService scmApplyInboundQueryService;
@Autowired
private ScmApplyInboundQueryService scmApplyInboundQueryService;
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<ScmApplyInboundQueryVo>> listPage(@RequestBody PagerQuery<ScmApplyInboundQueryQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<ScmApplyInboundQueryVo> pv = scmApplyInboundQueryService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<ScmApplyInboundQueryVo>> listPage(@RequestBody PagerQuery<ScmApplyInboundQueryQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<ScmApplyInboundQueryVo> pv = scmApplyInboundQueryService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean<String> save(@RequestBody ScmApplyInboundQueryDto dto){
ResultBean rb = ResultBean.fireFail();
String sid = scmApplyInboundQueryService.saveOrUpdateDto(dto);
return rb.success().setData(sid);
}
@Override
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean<String> save(@RequestBody ScmApplyInboundQueryDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = scmApplyInboundQueryService.saveOrUpdateDto(dto);
return rb.success().setData(sid);
}
@Override
@ApiOperation("根据sid批量删除")
@Override
@ApiOperation("根据sid批量删除")
@DeleteMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
ResultBean rb = ResultBean.fireFail();
scmApplyInboundQueryService.delBySids(sids);
return rb.success();
}
public ResultBean delBySids(@RequestBody String[] sids) {
ResultBean rb = ResultBean.fireFail();
scmApplyInboundQueryService.delBySids(sids);
return rb.success();
}
@Override
@ApiOperation("根据SID获取一条记录")
@Override
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<ScmApplyInboundQueryDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
ScmApplyInboundQueryDetailsVo vo = scmApplyInboundQueryService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
public ResultBean<ScmApplyInboundQueryDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
ScmApplyInboundQueryDetailsVo vo = scmApplyInboundQueryService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@Override
public ResultBean<PdfPath> createPdf(String cgrkdSid,String printerType) {
return scmApplyInboundQueryService.createPdf(cgrkdSid,printerType);
}
@Override
public ResultBean<PdfPath> createPdf(String cgrkdSid, String printerType) {
return scmApplyInboundQueryService.createPdf(cgrkdSid, printerType);
}
@Override
public ResultBean ctcgykd(String cgrkdSid) {
return scmApplyInboundQueryService.ctcgykd(cgrkdSid);
}
@Override
public ResultBean ctcgykd(String cgrkdSid) {
return scmApplyInboundQueryService.ctcgykd(cgrkdSid);
}
@Override
public ResultBean<Integer> fetchByApplicationCode(String applicationCode) {
return scmApplyInboundQueryService.fetchByApplicationCode(applicationCode);
}
@Override
public ResultBean<Integer> fetchByApplicationCode(String applicationCode) {
return scmApplyInboundQueryService.fetchByApplicationCode(applicationCode);
}
}

49
yxt-as-ui/src/api/storage/receivingGoods.js

@ -1,7 +1,6 @@
import request from '@/utils/request'
export default {
// 查询分页列表
listPage: function(params) {
return request({
@ -13,24 +12,20 @@ export default {
}
})
},
// 根据收货单sid 获取上架单列表
getUpShlefList: function(data) {
return request({
url: '/wms/apiadmin/inventory/WmsReceiptBill/getUpShlefListBySid/' + data,
method: 'get'
});
})
},
// 初始化
init: function(data) {
return request({
url: '/wms/apiadmin/inventory/WmsReceiptBill/getDetailsInit?sid=' + data,
method: 'get'
});
})
},
// 新增、保存
save: function(data) {
return request({
@ -40,9 +35,8 @@ export default {
headers: {
'Content-Type': 'application/json'
}
});
})
},
// 确认
submit: function(data) {
return request({
@ -52,23 +46,8 @@ export default {
headers: {
'Content-Type': 'application/json'
}
});
},
// 保存 上架单
saveUpShelf: function(data) {
return request({
url: '/wms/apiadmin/WmsShelfBill/saveOrUpdate',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
});
})
},
// 查询所有商品
getGoodsListPage: function(params) {
return request({
@ -80,8 +59,6 @@ export default {
}
})
},
deleteBySids: function(data) {
return request({
url: '/wms/apiadmin/inventory/WmsReceiptBill/delBySids',
@ -91,21 +68,5 @@ export default {
'Content-Type': 'application/json'
}
})
},
// 初始化新增上架单
initUpshelf: function(params) {
return request({
url: '/wms/apiadmin/WmsShelfBill/getInit?sid=' + params.sid + "&orgPath=" + params.orgPath + "&userSid=" +
params.userSid,
method: 'get',
headers: {
'Content-Type': 'application/json'
}
});
},
}
}

117
yxt-as-ui/src/views/storage/deliveryNotice/index.vue

@ -40,12 +40,6 @@
</el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="审核状态">
<el-select v-model="queryParams.params.reviewStatus" placeholder="请选择" style="width: 200px;">
<el-option v-for="(item,i) in reviewStatusList" :key="item.sid" :label="item.name" :value="item.name">
</el-option>
</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>
@ -81,8 +75,6 @@
<el-table-column prop="mobile" label="联系人电话" align="center" width="150"/>
<el-table-column prop="deliveryDate" label="预计到货日期" align="center" width="150"/>
<el-table-column prop="billState" label="单据状态" align="center" width="150"/>
<!-- <el-table-column prop="reviewStatus" label="审核状态" align="center" width="150" /> -->
<!-- <el-table-column prop="refuseReason" label="拒绝原因" align="center" width="150" /> -->
</el-table>
</div>
<!-- End 项目列表 -->
@ -95,44 +87,12 @@
</div>
<!-- End 查询和其列表部分 -->
<!-- 新增修改部分组件 -->
<receiptAdd v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="resetState" @reloadlist="loadList"/>
<!-- 收货单新增 -->
<receivingGoodsAdd v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="resetState" @reloadlist="loadList"/>
<!-- 预期到货通知单详情 -->
<receiptInfo v-show="viewState == 4" ref="divInfo" @doback="resetState" @reloadlist="loadList"/>
<sourceBillInfo v-show="viewState == 5" ref="sourceinfo" @doback="resetState" @reloadlist="loadList"/>
<el-dialog title="审核单据" :visible.sync="dialogVisible" :before-close="handleClose">
<el-form ref="dataForm" class="formadd" style="margin-top: -40px;" :model="formobj">
<el-row class="first_row">
<el-col :span="8" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">审核结果</span>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item class="trightb_item">
<el-radio-group v-model="formobj.reviewStatus" size="small">
<el-radio :label="1">合格</el-radio>
<el-radio :label="2">不合格</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">审核意见</span>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item class="trightb_item">
<el-input v-model="formobj.remarks" placeholder="请填写审核意见" class="addinputw" style="width:100%" clearable/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="display: flex;flex-direction: row;width: 100%;justify-content: center;align-items: center;">
<el-button type="primary" style="margin-top: 20px;" @click="saveExamine"> </el-button>
</div>
</el-dialog>
<!-- 采购单详情 -->
<procurementInfo v-show="viewState == 5" ref="sourceInfo" @doback="resetState" />
</div>
</template>
@ -140,27 +100,21 @@
import req from '@/api/storage/deliveryNotice.js'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import receiptAdd from './receiptAdd.vue'
import receivingGoodsAdd from '../receivingGoods/receivingGoodsAdd'
import receiptInfo from './receiptInfo.vue'
import sourceBillInfo from './procurementInfo.vue'
import procurementInfo from '../../purchase/procurement/procurementInfo'
import { typeValues } from '@/api/Common/dictcommons'
export default {
components: {
ButtonBar,
Pagination,
receiptAdd,
receivingGoodsAdd,
receiptInfo,
sourceBillInfo
procurementInfo
},
data() {
return {
dialogVisible: false,
formobj: {
sid: '',
reviewStatus: '',
remarks: ''
},
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
@ -168,13 +122,6 @@ export default {
tableLoading: false,
dataList: [],
btnList: [
// {
// type: 'primary',
// size: 'small',
// icon: 'plus',
// btnKey: 'toAudit',
// btnLabel: ''
// },
{
type: 'primary',
size: 'small',
@ -202,7 +149,19 @@ export default {
size: 10,
total: 0,
params: {
name: ''
billNo: '',
createTimeStart: '',
createTimeEnd: '',
busTypeKey: '',
supplierName: '',
deliveryDateStart: '',
deliveryDateEnd: '',
billState: '',
reviewStatus: '',
sourceBillNo: '',
menuUrl: '',
orgPath: '',
userSid: ''
}
},
sids: [],
@ -274,20 +233,7 @@ export default {
},
showSourceBillDetail(row) {
this.viewState = 5
this.$refs['sourceinfo'].showInfo(row.sourceBillSid)
},
saveExamine() {
},
toAudit() {
if (this.selectionList.length === 1) {
this.dialogVisible = true
} else {
this.$message({ type: 'warning', message: '请选择一条记录进行操作', showClose: true })
}
},
handleClose() {
this.dialogVisible = false
this.$refs['sourceInfo'].showInfo({ sid: row.sourceBillSid })
},
selectionLineChangeHandle(val) {
this.selectionList = val
@ -344,7 +290,6 @@ export default {
this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
@ -361,7 +306,19 @@ export default {
size: 10,
total: 0,
params: {
name: ''
billNo: '',
createTimeStart: '',
createTimeEnd: '',
busTypeKey: '',
supplierName: '',
deliveryDateStart: '',
deliveryDateEnd: '',
billState: '',
reviewStatus: '',
sourceBillNo: '',
menuUrl: '',
orgPath: '',
userSid: ''
}
}
this.loadList()
@ -448,7 +405,7 @@ export default {
return
}
this.viewState = 2
this.$refs['divAdd'].showEdit(this.selectionList[0])
this.$refs['divAdd'].showAdd({ sid: this.selectionList[0].sid })
},
toInfo(row) {
this.viewState = 4

389
yxt-as-ui/src/views/storage/deliveryNotice/procurementInfo.vue

@ -1,389 +0,0 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8">
<div class="span-sty">申请部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">申请日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">采购方式</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchaseTypeValue }}<span
v-show="formobj.purchaseTypeValue == '代理库'"
style="margin-left: 20px">{{ formobj.operateBrandValue }}</span></span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">采购原因</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchaseReasonValue }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">付款方式</div>
<el-form-item><span class="addinputInfo">{{ formobj.payTypeValue }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">供应商</div>
<el-form-item><span class="addinputInfo">{{ formobj.supplierName }}<span
v-show="formobj.purchaseTypeValue == '代理库'"
style="margin-left: 20px">{{ formobj.warehouseTypeValue }}</span></span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">是否开发票</div>
<el-form-item><span
class="addinputInfo">{{ formobj.purchaseBillInvoice.isInvoicing == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div v-show="formobj.purchaseBillInvoice.isInvoicing == '1'">
<div class="span-sty">发票类型(税率)</div>
<el-form-item><span
class="addinputInfo">{{ formobj.purchaseBillInvoice.billType }}{{ formobj.purchaseBillInvoice.taxRate == '' ? '' : '(' + formobj.purchaseBillInvoice.taxRate + '%)' }}</span></el-form-item>
</div>
</el-col>
</el-row>
<el-row v-show="formobj.payTypeValue == '预付款'">
<el-col :span="24">
<div class="span-sty">预付款情况</div>
<el-form-item><span class="addinputInfo">当前预付款项金额(){{ formobj.prepaymentAmount }}</span></el-form-item>
</el-col>
</el-row>
<el-row v-show="formobj.payTypeValue == '月结'">
<el-col :span="24">
<div class="span-sty">月结欠款情况</div>
<el-form-item><span class="addinputInfo">累计欠款金额(){{ formobj.owedAmount }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">预计到货日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.deliveryDate }}</span></el-form-item>
</el-col>
</el-row>
<div v-if="formobj.payTypeValue == '单笔付款'">
<div class="title">订金及付款申请</div>
<el-row>
<el-col :span="8">
<div class="span-sty">是否先付货款</div>
<el-form-item><span
class="addinputInfo">{{ formobj.purchasePay.isFirstPay == '1' ? '是' : '否' }}</span></el-form-item>
</el-col>
<el-col :span="8" v-if="formobj.purchasePay.isFirstPay == '0'">
<div class="span-sty">审批通过后付订金</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.deposit }}</span></el-form-item>
</el-col>
<el-col :span="8" v-if="formobj.purchasePay.isFirstPay == '0'">
<div class="span-sty">验货后付货款</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.goodsMoney }}</span></el-form-item>
</el-col>
<el-col :span="16" v-else>
<div class="span-sty">审批通过后付货款</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.goodsMoney }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">收款账户名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.accountName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">开户行</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.bankName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">银行账号</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.bankAccount }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<div class="span-sty">其他费用名称</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.otherAmountName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">其他费用合计</div>
<el-form-item><span class="addinputInfo">{{ formobj.purchasePay.otherAmount }}</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.purchasePay.payRemark }}</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.purchasePay.filePaths" :key="index" :src="item"
:preview-src-list="formobj.purchasePay.filePaths" /></el-form-item>
</el-col>
</el-row>
</div>
<div class="title ">商品列表</div>
<el-table :key="tableKey" :data="formobj.pmsPurchaseBillDetailList" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column prop="goodsSpuName" label="商品名称" align="center" width="300" />
<el-table-column prop="goodsSkuCode" label="图号" align="center" width="200" />
<el-table-column prop="goodsSkuOwnSpec" label="规格" align="center" width="200" />
<el-table-column prop="unit" label="单位" align="center" width="100" />
<el-table-column prop="count" label="采购数量" align="center" width="150" />
<el-table-column prop="taxPrice" v-if="formobj.purchaseBillInvoice.isInvoicing == '1'" label="含税单价(元)"
align="center" min-width="150" />
<el-table-column prop="taxPrice" v-else label="不含税单价(元)" align="center" min-width="150" />
<el-table-column prop="amount" label="采购金额(元)" align="center" width="200" />
</el-table>
<el-row>
<el-col :span="24">
<div class="span-sty" style="border-right: 0px">数量</div>
<el-form-item><span class="addinputInfo">{{ slTotal }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty" style="border-right: 0px">应付金额</div>
<el-form-item><span class="addinputInfo">{{ yfTotal }} = 采购金额{{ cgTotal }} + 运费{{ formobj.freight }} -
优惠{{ formobj.discountAmount }} + 误差调整{{ formobj.errorAmount }}</span></el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/purchase/procurement'
export default {
name: 'ProcurementInfo',
data() {
return {
viewTitle: '',
viewState: 1,
tableKey: 1,
index: 0,
formobj: {
sid: '',
remarks: '',
createBySid: '',
createByName: '',
createTime: '',
sourceBillSid: '',
sourceBillNo: '',
billNo: '',
purchaseTypeKey: '',
purchaseTypeValue: '',
purchaseReasonKey: '',
purchaseReasonValue: '',
payTypeKey: '',
payTypeValue: '',
errorAmount: '',
supplierSid: '',
supplierName: '',
supplierPhone: '',
purchaserSid: '',
purchaserName: '',
deliveryDate: '',
freight: '',
discountAmount: '',
payableAmount: '',
prepaymentAmount: '',
owedAmount: '',
deptSid: '',
deptName: '',
procDefId: '',
nodeId: '',
procInstId: '',
nodeState: '',
taskId: '',
finishTime: '',
useOrgSid: '',
useOrgName: '',
createOrgSid: '',
createOrgName: '',
operateBrandKey: '',
operateBrandValue: '',
warehouseTypeKey: '',
warehouseTypeValue: '',
purchasePay: {
sid: '',
billSid: '',
isFirstPay: '',
deposit: '',
goodsMoney: '',
accountName: '',
bankName: '',
bankAccount: '',
otherAmountName: '',
otherAmount: '',
payRemark: '',
filePaths: []
},
purchaseBillInvoice: {
billSid: '',
isInvoicing: '',
billTypeKey: '',
billType: '',
taxRate: ''
},
pmsPurchaseBillDetailList: []
},
rules: {}
}
},
computed: {
//
slTotal() {
let sl = '0'
if (this.formobj.pmsPurchaseBillDetailList.length > 0) {
this.formobj.pmsPurchaseBillDetailList.forEach((e) => {
if (e.goodsSpuName !== '') {
sl = Math.round((parseFloat(sl) + parseFloat(e.count !== '' ? e.count : '0')) * 100) / 100
}
})
}
return sl
},
//
cgTotal() {
let cg = '0'
if (this.formobj.pmsPurchaseBillDetailList.length > 0) {
this.formobj.pmsPurchaseBillDetailList.forEach((e) => {
if (e.goodsSpuName !== '') {
cg = Math.round((parseFloat(cg) + parseFloat(e.amount !== '' ? e.amount : '0')) * 100) / 100
}
})
}
return cg
},
yfTotal() {
let yf = '0'
yf = Math.round((parseFloat(yf) + parseFloat(this.cgTotal) + parseFloat(this.formobj.freight !== '' ? this
.formobj.freight : '0') - parseFloat(this.formobj.discountAmount !== '' ? this.formobj.discountAmount :
'0') + parseFloat(this.formobj.errorAmount !== '' ? this.formobj.errorAmount : '0')) * 100) / 100
return yf
}
},
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.purchasePay.filePaths.length > 0) {
const aa = []
this.formobj.purchasePay.filePaths.forEach((e) => {
aa.push(e.url)
})
this.formobj.purchasePay.filePaths = aa
}
}
})
},
handleReturn() {
this.formobj = {
sid: '',
remarks: '',
createBySid: '',
createByName: '',
createTime: '',
sourceBillSid: '',
sourceBillNo: '',
billNo: '',
purchaseTypeKey: '',
purchaseTypeValue: '',
purchaseReasonKey: '',
purchaseReasonValue: '',
payTypeKey: '',
payTypeValue: '',
errorAmount: '',
supplierSid: '',
supplierName: '',
supplierPhone: '',
purchaserSid: '',
purchaserName: '',
deliveryDate: '',
freight: '',
discountAmount: '',
payableAmount: '',
prepaymentAmount: '',
owedAmount: '',
deptSid: '',
deptName: '',
procDefId: '',
nodeId: '',
procInstId: '',
nodeState: '',
taskId: '',
finishTime: '',
useOrgSid: '',
useOrgName: '',
createOrgSid: '',
createOrgName: '',
operateBrandKey: '',
operateBrandValue: '',
warehouseTypeKey: '',
warehouseTypeValue: '',
purchasePay: {
sid: '',
billSid: '',
isFirstPay: '',
deposit: '',
goodsMoney: '',
accountName: '',
bankName: '',
bankAccount: '',
otherAmountName: '',
otherAmount: '',
payRemark: '',
filePaths: []
},
purchaseBillInvoice: {
billSid: '',
isInvoicing: '',
billTypeKey: '',
billType: '',
taxRate: ''
},
pmsPurchaseBillDetailList: []
}
this.$emit('doback')
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
</style>

385
yxt-as-ui/src/views/storage/deliveryNotice/receiptAdd.vue

@ -1,385 +0,0 @@
<template>
<div>
<div class="tab-header webtop">
<div>新增收货单</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>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">来源单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">业务类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.busTypeValue }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span>供应商</div>
<el-form-item prop="supplierName">
<el-select v-model="formobj.supplierName" placeholder="请选择" clearable @change="selectSupplierName" class="addinputInfo addinputw">
<el-option v-for="item in supplierNameList" :key="item.sid" :label="item.supplierName" :value="item.sid">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span>到货日期</div>
<el-form-item prop="deliveryDate">
<el-date-picker v-model="formobj.deliveryDate" type="date" class="addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span>收货人是否与上架人一致</div>
<el-form-item prop="isUpShelf">
<el-radio-group v-model="formobj.isUpShelf" size="small" class="addinputInfo">
<el-radio :label="1"></el-radio>
<el-radio :label="2"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">备注</div>
<el-form-item>
<el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo" type="textarea" :rows="4" clearable/>
</el-form-item>
</el-col>
</el-row>
<div class="title">商品列表</div>
<el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;">
<el-table-column fixed width="50" type="selection" align="center" />
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="操作" wid align="center" width="100">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="doGoods(scope.row)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="商品名称" prop="goodsSpuName" align="center" width="200" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" />
<el-table-column label="入库单价" prop="cost" align="center" width="100">
<template slot-scope="scope">
<el-input @input="commodityComputeYHAndXSJE(scope.row)" @keyup.native="scope.row.cost = getNumber(scope.row.cost, 0)" v-model="scope.row.cost" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="预期到货数量" prop="orderCount" align="center" width="120" />
<el-table-column label="实收数量" align="center" width="120">
<template slot-scope="scope">
<el-input @input="commodityComputeYHAndXSJE(scope.row)" @keyup.native="scope.row.actualInCount = getNumber(scope.row.actualInCount, 0)" v-model="scope.row.actualInCount" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="拒收数量" align="center" width="120">
<template slot-scope="scope">
<el-input @keyup.native="scope.row.rejectCount = getNumber(scope.row.rejectCount, 0)" v-model="scope.row.rejectCount" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="拒收原因" align="center" width="180">
<template slot-scope="scope">
<el-input v-model="scope.row.rejectReason" clearable placeholder=""/>
</template>
</el-table-column>
<el-table-column label="是否质检" align="center" width="180">
<template slot-scope="scope">
<el-radio-group v-model="scope.row.isQuality" size="small">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</template>
</el-table-column>
<el-table-column label="质检状态" align="center" width="180">
<template slot-scope="scope">
<el-radio-group v-model="scope.row.qualityState" size="small">
<el-radio :label="0">合格</el-radio>
<el-radio :label="1">不合格</el-radio>
</el-radio-group>
</template>
</el-table-column>
<el-table-column label="载具说明" align="center" width="180">
<template slot-scope="scope">
<el-input v-model="scope.row.packageRemark" clearable placeholder="" />
</template>
</el-table-column>
<el-table-column label="税率" prop="taxAmount" align="center" width="100" />
<el-table-column label="入库金额" prop="amount" align="center" width="100" />
</el-table>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/storage/deliveryNotice.js'
import { getCurrentDate } from '@/utils/index.js'
import { choiceSupplierInfo, getOrgSidByPath } from '@/api/Common/dictcommons'
export default {
components: {},
data() {
return {
listLoading: false,
submitdisabled: false,
formobj: {
sourceBillNo: '',
busTypeKey: '',
busTypeValue: '',
createTime: '',
createByName: window.sessionStorage.getItem('name'),
deptName: '',
deptSid: '',
createBySid: window.sessionStorage.getItem('userSid'),
useOrgSid: '',
createOrgSid: '',
billState: '新建',
billStateKey: 0,
reviewStatus: '',
refuseReason: '',
contact: '',
mobile: '',
supplierSid: '',
supplierName: '',
goodsOwnerSid: '',
goodsOwner: '',
deliveryDate: getCurrentDate(),
list: [],
pcList: []
},
supplierNameList: [],
rules: {
deliveryDate: [{ required: true, message: '到货日期不能为空', trigger: 'change' }],
isUpShelf: [{ required: true, message: '请选择是或否', trigger: 'change' }],
supplierName: [{ required: true, message: '供应商不能为空', trigger: 'change' }]
}
}
},
methods: {
getNumber(val, limit) {
val = val.replace(/[^0-9.]/g, '') //
val = val.replace(/^00/, '0.') // 0
val = val.replace(/^\./g, '0.') // 0.
val = val.replace(/\.{2,}/g, '.') //
val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.'); //
/^0\d+/.test(val) ? val = val.slice(1) : '' // 0
const str = '^(\\d+)\\.(\\d{' + limit + '}).*$'
const reg = new RegExp(str)
if (limit === 0) {
//
val = val.replace(reg, '$1')
} else {
//
val = val.replace(reg, '$1.$2')
}
return val
},
init() {
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
choiceSupplierInfo({ deptSid: window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1) }).then((resp) => {
if (resp.success) {
this.supplierNameList = resp.data
}
})
},
selectSupplierName(val) {
const choose = this.supplierNameList.filter((item) => item.sid === val)
this.formobj.supplierName = choose[0].supplierName
this.formobj.supplierSid = choose[0].sid
},
doGoods(row) {
this.$confirm('是否确定删除此商品?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const index = this.formobj.list.findIndex((item) => item === row)
this.formobj.list.splice(index, 1)
for (var i = this.formobj.pcList.length - 1; i >= 0; i--) {
if (this.formobj.pcList[i].xh === (index + 1)) {
this.formobj.pcList.splice(i, 1)
}
}
})
},
commodityComputeYHAndXSJE(row) {
row.amount = Math.round((parseFloat(row.actualInCount !== '' ? row.actualInCount : 0) * parseFloat(row.cost !== '' ? row.cost : 0)) * 100) / 100
},
indexMethod(index) {
return index + 1
},
saveOrUpdate() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
for (var i = 0; i < this.formobj.list.length; i++) {
if (parseFloat(this.formobj.list[i].actualInCount) === 0) {
this.$message({ showClose: true, type: 'error', message: '商品实收数量不能为空' })
return
}
}
this.submitdisabled = true
req.save(this.formobj).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.handleReturn('true')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
}
})
},
submit() {
for (var i = 0; i < this.formobj.list.length; i++) {
if (parseFloat(this.formobj.list[i].actualInCount) === 0) {
this.$message({ showClose: true, type: 'error', message: '商品实收数量不能为空' })
return
}
}
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: '提交成功' })
this.handleReturn('true')
} else {
this.submitdisabled = false
}
}).catch(() => {
this.submitdisabled = false
})
}
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.submitdisabled = false
this.formobj = {
sourceBillNo: '',
busTypeKey: '',
busTypeValue: '',
createTime: '',
createByName: window.sessionStorage.getItem('name'),
deptName: '',
deptSid: '',
createBySid: window.sessionStorage.getItem('userSid'),
useOrgSid: '',
createOrgSid: '',
billState: '新建',
billStateKey: 0,
reviewStatus: '',
refuseReason: '',
contact: '',
mobile: '',
supplierSid: '',
supplierName: '',
goodsOwnerSid: '',
goodsOwner: '',
deliveryDate: getCurrentDate(),
list: [],
pcList: []
}
this.$emit('doback')
},
showAdd() {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.init()
},
showEdit(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.init()
req.getInitDetails(row.sid).then((resp) => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deliveryDate = getCurrentDate()
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}
}).catch(e => {
this.formobj = {}
})
}
}
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 190px !important;
}
.addinputInfo {
margin-left: 180px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 180px !important;
width: calc(100% - 175px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
/deep/ .el-form-item__error {
margin-left: 180px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group {
display: inline;
line-height: 1px;
vertical-align: middle;
}
</style>

2
yxt-as-ui/src/views/storage/deliveryNotice/receiptInfo.vue

@ -1,5 +1,5 @@
<template>
<div>
<div class="app-container">
<div class="tab-header webtop">
<div>预期到货通知单详情</div>
<div>

732
yxt-as-ui/src/views/storage/receivingGoods/index.vue

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="收货单管理" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<button-bar ref="btnbar" view-title="收货单管理" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">
@ -10,47 +10,39 @@
<div v-show="isSearchShow" class="search">
<el-form :inline="true" class="tab-header">
<el-form-item label="单据编号">
<el-input v-model="queryParams.params.billNo" placeholder="" clearable />
<el-input v-model="queryParams.params.billNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="单据日期">
<el-date-picker v-model="queryParams.params.createTimeStart" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
<el-date-picker v-model="queryParams.params.createTimeEnd" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
<el-date-picker v-model="queryParams.params.createTimeStart" type="date" placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;" />
<span style="padding: 0 8px"></span>
<el-date-picker v-model="queryParams.params.createTimeEnd" type="date" placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;" />
</el-form-item>
<el-form-item label="预期到货通知单号">
<el-input v-model="queryParams.params.sourceBillNo" placeholder="" clearable />
<el-input v-model="queryParams.params.sourceBillNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="业务类型">
<el-select v-model="queryParams.params.busTypeKey" placeholder="请选择" style="width: 200px;">
<el-option v-for="(item,i) in busTypeList" :key="item.dictKey" :label="item.dictValue"
:value="item.dictKey">
<el-option v-for="item in busTypeList" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="供应商">
<el-input v-model="queryParams.params.supplierName" placeholder="" clearable />
<el-input v-model="queryParams.params.supplierName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="到货日期">
<el-date-picker v-model="queryParams.params.deliveryDateStart" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
<el-date-picker v-model="queryParams.params.deliveryDateEnd" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
<el-date-picker v-model="queryParams.params.deliveryDateStart" type="date" placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;" />
<span style="padding: 0 8px"></span>
<el-date-picker v-model="queryParams.params.deliveryDateEnd" type="date" placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;" />
</el-form-item>
<el-form-item label="单据状态">
<el-select v-model="queryParams.params.billState" placeholder="请选择" style="width: 200px;">
<el-option v-for="(item,i) in billStateList" :key="i" :label="item.name" :value="item.sid">
<el-option v-for="item in billStateList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="分配状态">
<el-select v-model="queryParams.params.distributeType" placeholder="请选择" style="width: 200px;">
<el-option v-for="(item,i) in distributeTypeList" :key="i" :label="item.name" :value="item.sid">
<el-option v-for="item in distributeTypeList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select>
</el-form-item>
@ -68,15 +60,13 @@
<!-- End 项目列表头部 -->
<!-- Start 项目列表 -->
<div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
@selection-change="selectionLineChangeHandle">
<el-table-column fixed width="50" type="selection" align="center" />
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" @selection-change="selectionLineChangeHandle">
<el-table-column fixed width="50" type="selection" align="center"/>
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column fixed label="操作" align="center" width="150">
<template slot-scope="scope">
<el-button type="primary" size="mini" :disabled="scope.row.billState=='已完成'"
@click="toEdit(scope.row)">办理</el-button>
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">查看</el-button>
<el-button type="primary" size="mini" :disabled="scope.row.billState=='已完成'" @click="toEdit(scope.row)">办理</el-button>
<el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="billNo" width="180" label="单据编号" align="center" />
@ -90,476 +80,328 @@
<el-table-column prop="billState" label="单据状态" width="100" align="center" />
<el-table-column label="上架单" align="center" width="100">
<template slot-scope="scope">
<div style="color: #1890FF; text-decoration: underline ;cursor:pointer;"
@click="showUpShelfList(scope.row)">
{{ scope.row.upShlefNum }}
</div>
<span class="bluezi" @click="showUpShelfList(scope.row)">{{ scope.row.upShlefNum }}</span>
</template>
</el-table-column>
</el-table>
</div>
<!-- End 项目列表 -->
<div class="pages">
<div class="tit" />
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
:limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current" :limit.sync="queryParams.size" class="pagination" @pagination="loadList"/>
</div>
</div>
</div>
<!-- End 查询和其列表部分 -->
<!-- 新增修改部分组件 -->
<!-- 收货单编辑 -->
<divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList" />
<!-- 收货单详情 -->
<divInfo v-show="viewState == 4" ref="divinfo" @doback="resetState" @reloadlist="loadList" />
<divAddupShelfRecord v-show="viewState == 5" ref="divAddupShelfRecord" @doback="resetState"
@reloadlist="loadList" />
<!-- 上架单新增 -->
<upShelfAdd v-show="viewState == 5" ref="upShelfAdd" @doback="resetState" @reloadlist="loadList" />
<!-- 上架单详情 -->
<upShelfInfo v-show="viewState == 6" ref="upShelfInfo" @doback2="resetState2" @reloadlist="loadList" />
<el-dialog title="上架单列表" :visible.sync="dialogVisible" :before-close="handleClose">
<el-table :data="upShelfList" border style="width: 100%;margin-top: -30px;">
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod2" align="center" />
<el-table-column label="单据编号" align="center">
<template slot-scope="scope">
<div style="color: #1890FF; text-decoration: underline ;cursor:pointer;"
@click="showUpShelfBill(scope.row)">
{{ scope.row.billNo }}
</div>
<span class="bluezi" @click="showUpShelfBill(scope.row)">{{ scope.row.billNo }}</span>
</template>
</el-table-column>
<el-table-column prop="createTime" label="单据日期" align="center" />
<el-table-column prop="createByName" label="制单人" align="center" />
<el-table-column prop="sourceBillNo" label="来源单号" align="center" />
<el-table-column prop="billState" label="单据状态" align="center" />
</el-table>
</el-dialog>
</div>
</template>
<script>
import req from '@/api/storage/receivingGoods.js'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import divAdd from './receivingGoodsAdd.vue'
import divInfo from './receivingGoodsInfo.vue'
import divAddupShelfRecord from './upShelfAddRecord.vue'
import upShelfInfo from './upShelfInfo.vue'
import {
typeValues
} from '@/api/Common/dictcommons'
export default {
components: {
ButtonBar,
Pagination,
pageye,
divAdd,
divInfo,
divAddupShelfRecord,
upShelfInfo
},
data() {
return {
dialogVisible: false,
formobj: {
sid: "",
reviewStatus: "",
remarks: ''
import req from '@/api/storage/receivingGoods.js'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import divAdd from './receivingGoodsAdd.vue'
import divInfo from './receivingGoodsInfo.vue'
import upShelfAdd from '../upShelf/upShelfAdd.vue'
import upShelfInfo from '../upShelf/upShelfInfo.vue'
import { typeValues } from '@/api/Common/dictcommons'
export default {
components: {
ButtonBar,
Pagination,
divAdd,
divInfo,
upShelfAdd,
upShelfInfo
},
data() {
return {
dialogVisible: false,
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
searchxianshitit: '显示查询条件',
tableLoading: false,
dataList: [],
btnList: [
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toPrint',
btnLabel: '打印入库单'
},
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
searchxianshitit: '显示查询条件',
tableLoading: false,
dataList: [],
btnList: [
// {
// type: 'primary',
// size: 'small',
// icon: 'plus',
// btnKey: 'toAudit',
// btnLabel: ''
// },
// {
// type: 'danger',
// size: 'small',
// icon: 'del',
// btnKey: 'doDel',
// btnLabel: ''
// },
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toPrint',
btnLabel: '打印入库单'
},
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增上架单'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
name: ''
}
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增上架单'
},
sids: [],
selectionList: [],
busTypeList: [],
billStateList: [{
name: "新建",
sid: "0"
},
{
name: "已完成",
sid: "1"
},
],
distributeTypeList: [{
name: "未分配",
sid: "0"
},
{
name: "部分分配",
sid: "2"
},
{
name: "已分配",
sid: "1"
},
],
upShelfList: [
// {
// billSid: 'sid',
// billNo: '',
// createTime: '',
// createByName: '',
// sourceBillNo: '',
// billState: ''
// },
]
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
billNo: '',
createTimeStart: '',
createTimeEnd: '',
sourceBillNo: '',
busTypeKey: '',
deliveryDateStart: '',
deliveryDateEnd: '',
billState: '',
distributeType: '',
menuUrl: '',
orgPath: '',
userSid: ''
}
},
sids: [],
selectionList: [],
busTypeList: [],
billStateList: [
{
name: '新建',
sid: '0'
},
{
name: '已完成',
sid: '1'
}
],
distributeTypeList: [
{
name: '未分配',
sid: '0'
},
{
name: '部分分配',
sid: '2'
},
{
name: '已分配',
sid: '1'
}
],
upShelfList: []
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
this.loadList()
typeValues({ type: 'wms_busType' }).then((res) => {
if (res.success) {
this.busTypeList = res.data
}
})
},
methods: {
showUpShelfList(row) {
req.getUpShlefList(row.sid).then((resp) => {
if (resp.success) {
this.upShelfList = resp.data
this.dialogVisible = true
}
})
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
showUpShelfBill(row) {
this.dialogVisible = false
this.viewState = 6
this.$refs['upShelfInfo'].showEdit(row.billSid)
},
created() {
this.loadList()
typeValues({
type: 'wms_busType'
}).then((res) => {
if (res.success) {
this.busTypeList = res.data
}
resetState2() {
this.viewState = 1
this.dialogVisible = true
},
handleClose() {
this.dialogVisible = false
},
selectionLineChangeHandle(val) {
this.selectionList = val
const aa = []
val.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
methods: {
showUpShelfList(row) {
console.log("val", row);
req.getUpShlefList(row.sid).then((resp) => {
this.upShelfList = resp.data
this.dialogVisible = true
}).catch(() => {})
},
showUpShelfBill(row) {
this.dialogVisible = false
this.viewState = 6
this.$refs['upShelfInfo'].showEdit(row.billSid)
},
resetState2() {
this.viewState = 1
this.dialogVisible = true
},
handleClose() {
this.dialogVisible = false
},
saveExamine() {
},
changeTheme() {
},
toAudit() {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
selectTime1() {
},
selectTime2() {
},
selectionLineChangeHandle(val) {
console.log("val", val);
this.selectionList = val
const aa = []
val.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
switch (btnKey) {
case 'toPrint':
this.toPrint()
break
case 'toAdd':
this.toAdd()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
loadList() {
this.tableLoading = true
this.queryParams.params.userSid = window.sessionStorage.getItem('userSid')
this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.queryParams.params.menuUrl = this.$route.path
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
this.searchxianshitit = '显示查询条件'
// resp.code
this.dataList = []
this.queryParams.total = 0
}
},
btnHandle(btnKey) {
switch (btnKey) {
case 'toAudit':
this.toAudit()
break
case 'doDel':
this.doDel()
break
case 'toPrint':
this.toPrint()
break
case 'toAdd':
this.toAdd()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
loadList() {
this.tableLoading = true
this.queryParams.params.userSid = window.sessionStorage.getItem('userSid')
this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.queryParams.params.menuUrl = this.$route.path
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
indexMethod2(index) {
return index + 1
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: ''
}
}).catch(() => {
this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
indexMethod2(index) {
return index + 1
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
billNo: '',
createTimeStart: '',
createTimeEnd: '',
sourceBillNo: '',
busTypeKey: '',
deliveryDateStart: '',
deliveryDateEnd: '',
billState: '',
distributeType: '',
menuUrl: '',
orgPath: '',
userSid: ''
}
this.loadList()
},
doDel() {
if (this.sids.length > 0) {
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then((resp) => {
loading.close()
if (resp.success) {
this.$message({
type: 'success',
message: resp.msg,
showClose: true
})
this.loadList()
} else {
// resp.code
}
}).catch(e => {
loading.close()
})
}).catch(() => {})
} else {
}
this.loadList()
},
toPrint() {
for (var i = 0; i < this.selectionList.length; i++) {
if (this.selectionList[i].billState !== '已完成') {
this.$message({
showClose: true,
message: '请至少选择一条记录进行删除操作'
type: 'warning',
message: '只能选择已完成的记录。',
showClose: true
})
return
}
},
toPrint() {
for (var i = 0; i < this.selectionList.length; i++) {
if (this.selectionList[i].billState != '已完成') {
this.$message({
type: 'warning',
message: "只能选择已完成的记录。",
showClose: true
})
return
}
}
}
this.$message({
type: 'warning',
message: '打印功能正在完善中。',
showClose: true
})
},
toAdd() {
if (this.selectionList.length !== 1) {
this.$message({
type: 'warning',
message: "打印功能正在完善中。",
message: '请选择一条数据。',
showClose: true
})
},
toAdd() {
if (this.selectionList.length != 1) {
this.$message({
type: 'warning',
message: "请选择一条数据。",
showClose: true
})
return
}
if (this.selectionList[0].billState == '新建') {
this.$message({
type: 'warning',
message: "此记录未完成,不可操作。",
showClose: true
})
return
}
if (this.selectionList[0].distributeType == '已分配') {
this.$message({
type: 'warning',
message: "此记录已全部分配,不可操作。",
showClose: true
})
return
}
this.viewState = 5
this.$refs['divAddupShelfRecord'].showEdit(this.selectionList[0])
},
toEdit(row) {
this.viewState = 3
this.$refs['divadd'].showEdit(row)
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
toRelevancy(row) {
this.viewState = 4
this.$refs['divinfo'].showEdit(row)
},
toRelevancyInfo(row) {
const tip = '请确认是否删除所选品牌?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteGoods(row.sid).then((resp) => {
loading.close()
if (resp.success) {
this.$message({
type: 'success',
message: resp.msg,
showClose: true
})
this.loadList()
} else {
// resp.code
}
}).catch(e => {
loading.close()
})
}).catch(() => {})
},
resetState() {
this.viewState = 1
},
enableChange(sid, state) {
console.log('sid', sid)
console.log('state', state)
req.updateIsEnable(sid, state).then((resp) => {
if (resp.success) {
this.$message({
type: 'success',
message: '状态已更新',
showClose: true
})
} else { // resp.code
}
}).catch(e => {
console.log(e)
return
}
if (this.selectionList[0].billState === '新建') {
this.$message({
type: 'warning',
message: '此记录未完成,不可操作。',
showClose: true
})
return
}
if (this.selectionList[0].distributeType === '已分配') {
this.$message({
type: 'warning',
message: '此记录已全部分配,不可操作。',
showClose: true
})
return
}
this.viewState = 5
this.$refs['upShelfAdd'].showEdit(this.selectionList[0])
},
toEdit(row) {
this.viewState = 3
this.$refs['divadd'].showEdit(row)
},
toInfo(row) {
this.viewState = 4
this.$refs['divinfo'].showEdit(row)
},
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

1231
yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsAdd.vue

File diff suppressed because it is too large

210
yxt-as-ui/src/views/storage/receivingGoods/receivingGoodsInfo.vue

@ -2,24 +2,15 @@
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<!-- 标题 -->
<div>收货单详情</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" v-show="formobj.billState=='已完成'" :disabled="submitdisabled"
@click="addUpShelf">新增上架单</el-button>
<el-button type="primary" size="small" v-show="formobj.billState=='已完成'" :disabled="submitdisabled" @click="addUpShelf">新增上架单
</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<!-- <div class="title">
<div>基础信息</div>
</div> -->
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">制单人</div>
@ -29,20 +20,16 @@
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">预期到货通知单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">业务类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.busTypeValue }}</span></el-form-item>
@ -51,11 +38,8 @@
<div class="span-sty">供应商</div>
<el-form-item><span class="addinputInfo">{{ formobj.supplierName }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">到货日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.deliveryDate }}</span></el-form-item>
@ -64,164 +48,102 @@
<div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</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.remarks}}</span></el-form-item>
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
<div class="title titleOne">
<div>商品列表</div>
</div>
<div class="title">商品列表</div>
<el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;">
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="商品名称" prop="goodsSpuName" align="center" width="200" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" />
<!-- <el-table-column label="仓库" prop="warehouseName" align="center" width="180" />
<el-table-column label="库位" prop="warehouseRackName" align="center" width="180" />-->
<el-table-column label="预期到货数量" prop="orderCount" align="center" width="120" />
<el-table-column label="实收数量" prop="actualInCount" align="center" width="120" />
<el-table-column label="拒收数量" prop="rejectCount" align="center" width="120" />
<el-table-column label="拒收原因" prop="rejectReason" align="center" width="180" />
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column fixed label="商品名称" prop="goodsSpuName" align="center" width="200"/>
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150"/>
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150"/>
<el-table-column label="单位" prop="unit" align="center" width="120"/>
<el-table-column label="预期到货数量" prop="orderCount" align="center" width="120"/>
<el-table-column label="实收数量" prop="actualInCount" align="center" width="120"/>
<el-table-column label="拒收数量" prop="rejectCount" align="center" width="120"/>
<el-table-column label="拒收原因" prop="rejectReason" align="center" width="180"/>
<el-table-column label="是否质检" align="center" width="180">
<template slot-scope="scope">
<el-radio-group v-model="scope.row.isQuality" :disabled="true" size="small">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
<span>{{ scope.row.isQuality == '0' ? '是' : scope.row.isQuality == '1' ? '否' : '' }}</span>
</template>
</el-table-column>
<el-table-column label="质检状态" align="center" width="180">
<template slot-scope="scope">
<el-radio-group v-model="scope.row.qualityState" :disabled="true" size="small">
<el-radio :label="0">合格</el-radio>
<el-radio :label="1">不合格</el-radio>
</el-radio-group>
<span>{{ scope.row.qualityState == '0' ? '合格' : scope.row.qualityState == '1' ? '不合格' : '' }}</span>
</template>
</el-table-column>
<el-table-column label="载具说明" prop="packageRemark" align="center" width="180" />
<el-table-column label="入库单价" prop="cost" align="center" width="100" />
<el-table-column label="税率" prop="taxAmount" align="center" width="100" />
<!-- <el-table-column label="含税单价" prop="taxPrice" align="center" width="100" /> -->
<el-table-column label="入库金额" prop="amount" align="center" width="100" />
<el-table-column label="已分配数量" prop="allotmentNum" align="center" width="130" />
<el-table-column label="载具说明" prop="packageRemark" align="center" width="180"/>
<el-table-column label="入库单价" prop="cost" align="center" width="100"/>
<el-table-column label="税率" prop="taxAmount" align="center" width="100"/>
<el-table-column label="入库金额" prop="amount" align="center" width="100"/>
<el-table-column label="已分配数量" prop="allotmentNum" align="center" width="130"/>
</el-table>
<!-- <div class="title titleOne">
<div>商品-批次</div>
</div>
<el-table v-loading="listLoading" :data="formobj.pcList" border style="width: 100%;">
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="商品列表序号" prop="xh" align="center" width="120" />
<el-table-column label="商品名称" prop="goodsSkuTitle" align="center" width="200" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" />
<el-table-column label="仓库" prop="warehouseName" align="center" width="150" />
<el-table-column label="库位" prop="warehouseRackName" align="center" width="150" />
<el-table-column label="批次号" prop="batchNumber" align="center" width="300" />
<el-table-column label="生产日期" prop="manufactureDate" align="center" width="180" />
<el-table-column label="有效期" prop="expirationDate" align="center" width="180" />
<el-table-column label="数量" prop="batchCount" align="center" width="120" />
</el-table> -->
</el-form>
</div>
</div>
<!-- 新增上架单 -->
<upShelf v-show="viewState == 2" ref="divSp" @doback="resetState" />
<upShelf v-show="viewState == 2" ref="divSp" @doback="resetState"/>
</div>
</template>
<script>
import req from '@/api/storage/receivingGoods.js'
import upShelf from './upShelfAddRecord'
export default {
components: {
upShelf
},
data() {
return {
viewState: 1,
listLoading: false,
submitdisabled: false,
formobj: {},
}
import req from '@/api/storage/receivingGoods.js'
import upShelf from '../upShelf/upShelfAdd'
export default {
components: {
upShelf
},
data() {
return {
viewState: 1,
listLoading: false,
submitdisabled: false,
formobj: {}
}
},
methods: {
indexMethod(index) {
return index + 1
},
methods: {
indexMethod(index) {
return index + 1
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.$emit('doback')
},
showAdd() {
},
showEdit(row) {
var params = {
sid: row.sid
handleReturn() {
this.$emit('doback')
},
showEdit(row) {
req.init(row.sid).then(resp => {
if (resp.success) {
this.formobj = resp.data
}
req.init(row.sid)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
}
})
.catch(e => {
this.formobj = {}
})
},
resetState() {
this.viewState = 1
},
addUpShelf() {
this.viewState = 2
this.$refs['divSp'].showEdit(this.formobj)
},
}).catch(e => {
this.formobj = {}
})
},
resetState() {
this.viewState = 1
},
addUpShelf() {
this.viewState = 2
this.$refs['divSp'].showEdit(this.formobj)
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

417
yxt-as-ui/src/views/storage/receivingGoods/upShelfAddRecord.vue

@ -1,417 +0,0 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>新增上架单</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<!-- <div class="title">
<div>基础信息</div>
</div> -->
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item>
<span class="addinputw addinputInfo">{{ formobj.createByName }}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 单据日期</div>
<el-form-item prop="createTime"> <el-date-picker v-model="formobj.createTime" type="date"
class="addinputw addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">来源单号</div>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据状态</div>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 上架人</div>
<el-form-item prop="upShelfName">
<el-select v-model="formobj.upShelfName" filterable clearable placeholder="请选择"
class="addinputw addinputInfo" @change="allOrgperSelect">
<el-option v-for="item in allOrgperList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">备注</div>
<el-form-item><el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo"
type="textarea" :rows="1" clearable /></el-form-item>
</el-col>
</el-row>
<div class="title">
<div>商品列表</div>
</div>
<el-table v-loading="listLoading" :data="formobj.list" border>
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="操作" wid align="center" width="120">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="doGoodsDel(scope.row.goodsSkuSid)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="商品名称" prop="goodsSpuName" align="center" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" />
<el-table-column label="单位" prop="unit" align="center" />
<!-- <el-table-column label="仓库" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.warehouseName" placeholder="请选择" clearable
@change="selectWarehouseName(scope.row,$event)">
<el-option v-for="(item,i) in warehouseList" :key="i" :label="item.warehouseName" :value="item.sid">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="库位" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.warehouseRackName" :disabled="scope.row.warehouseName==''" clearable
@focus="getWarehouseAreaList(scope.row.warehouseSid)" placeholder="请选择"
@change="selectWarehouseAreaCode(scope.row,$event)">
<el-option v-for="(item,i) in warehouseRackList" :key="i" :label="item.areaCode" :value="item.sid">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="批次号" prop="batchNumber" align="center" width="300" /> -->
<el-table-column label="需上架数量" align="center">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.count" clearable placeholder=""
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
</template>
</el-table-column>
<el-table-column label="载具编号" align="center">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.packageNo" clearable placeholder="" />
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/storage/receivingGoods.js'
import req2 from '@/api/storage/allocation.js'
import {
getCurrentDate
} from '@/utils/index.js'
import {
selAllByOrgSidPath,
getOrgSidByPath
} from '@/api/Common/dictcommons'
export default {
components: {},
data() {
return {
listLoading: false,
submitdisabled: false,
formobj: {
"sid": "",
"billNo": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"deptName": '',
"deptSid": '',
"sourceBillNo": "",
"sourceBillSid": "",
"billState": "新建",
"upShelfSid": "",
"upShelfName": '',
"list": [
],
"remarks": "",
'createOrgSid': "",
'useOrgSid': ""
},
hideUploadBtn: false,
busTypeList: [{
name: "业务类型1",
sid: "1"
},
{
name: "业务类型2",
sid: "2"
}
],
supplierList: [],
warehouseList: [],
warehouseRackList: [],
allOrgperList: [],
rules: {
createTime: [{
required: true,
message: '到货日期不能为空',
trigger: 'change'
}],
upShelfName: [{
required: true,
message: '请选择上架人员',
trigger: 'change'
}],
}
}
},
created() {
},
methods: {
getOrgPathSid() {
getOrgSidByPath({
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
},
doGoodsDel(sid) {
console.log("doGoodsDel》》》》", sid)
this.$confirm("是否确定删除此商品?", '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const index = this.formobj.list.findIndex((item) => item.goodsSkuSid === sid)
console.log("index》》》》", index)
this.formobj.list.splice(index, 1)
})
},
indexMethod(index) {
return index + 1
},
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
this.submitdisabled = true
this.$refs['form_obj'].validate((valid) => {
if (valid) {
req.saveUpShelf(this.formobj)
.then(resp => {
if (resp.success) {
this.submitdisabled = false
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
} else {
this.submitdisabled = false
// resp.code
}
})
.catch(() => {
this.submitdisabled = false
})
}
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
"sid": "",
"billNo": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"createTime": getCurrentDate(),
"deptName": '',
"deptSid": '',
"sourceBillNo": "",
"sourceBillSid": "",
"billState": "新建",
"upShelfSid": "",
"upShelfName": '',
"list": [
],
"remarks": "",
'createOrgSid': "",
'useOrgSid': ""
}
this.$emit('doback')
},
showAdd() {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
},
showEdit(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.getWarehouseList()
this.getAllOrgper()
this.getOrgPathSid()
var params = {
sid: row.sid,
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
userSid: window.sessionStorage.getItem('userSid')
}
req.initUpshelf(params)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}
})
.catch(e => {
this.formobj = {}
})
},
getAllOrgper() {
selAllByOrgSidPath({
orgSidPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.allOrgperList = res.data
console.log("aaaaaa", this.allOrgperList);
}
})
},
allOrgperSelect(val) {
console.log("allOrgperSelect", val);
const choose = this.allOrgperList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseName', choose)
this.formobj.upShelfName = choose[0].name
this.formobj.upShelfSid = choose[0].sid
},
getWarehouseList() {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getWarehouses(parpams).then((res) => {
if (res.success) {
this.warehouseList = res.data
console.log("aaaaaa", this.warehouseList);
}
})
},
getWarehouseAreaList(sid) {
var query = {
ckSid: sid
}
req2.getWarehouseareas(query).then((res) => {
if (res.success) {
this.warehouseRackList = res.data
console.log("aaaaaa", this.warehouseRackList);
}
})
},
selectWarehouseName(row, val) {
console.log("selectWarehouseName", row);
console.log("selectWarehouseName", val);
const choose = this.warehouseList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseName', choose)
row.warehouseName = choose[0].warehouseName
row.warehouseSid = choose[0].sid
},
selectWarehouseAreaCode(row, val) {
console.log("selectWarehouseAreaCode", val);
const choose = this.warehouseRackList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseAreaCode', choose)
row.warehouseRackName = choose[0].areaCode
row.warehouseRackSid = choose[0].sid
},
}
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

158
yxt-as-ui/src/views/storage/receivingGoods/upShelfInfo.vue

@ -1,158 +0,0 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>上架单详情</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<div class="title">
<div>基础信息</div>
</div>
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">来源单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">上架人</div>
<el-form-item><span class="addinputInfo">{{ formobj.upShelfName }}</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.remarks }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">
<div>商品列表</div>
</div>
<el-table v-loading="listLoading" :data="formobj.list" border>
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="80" />
<el-table-column fixed label="商品名称" prop="goodsSpuName" align="center" width="200" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" />
<el-table-column label="单位" prop="unit" align="center" />
<!-- <el-table-column label="批次号" prop="batchNumber" align="center" />
<el-table-column label="仓库" prop="warehouseName" align="center" />
<el-table-column label="库位" prop="warehouseRackCode" align="center" /> -->
<el-table-column label="需上架数量" prop="count" align="center" />
<el-table-column label="已上架数量" prop="actualCount" align="center" />
<el-table-column label="未上架数量" prop="noShelfCount" align="center" />
<el-table-column label="载具编号" prop="packageNo" align="center" />
</el-table>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/storage/upShelf.js'
export default {
components: {},
data() {
return {
listLoading: false,
submitdisabled: false,
formobj: {},
}
},
methods: {
indexMethod(index) {
return index + 1
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.$emit('doback2')
},
showAdd() {
},
showEdit(sid) {
req.init(sid)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
}
})
.catch(e => {
this.formobj = {}
})
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
</style>

527
yxt-as-ui/src/views/storage/upShelf/index.vue

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="上架单管理" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<button-bar ref="btnbar" view-title="上架单管理" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">
@ -10,22 +10,19 @@
<div v-show="isSearchShow" class="search">
<el-form :inline="true" class="tab-header">
<el-form-item label="单据编号">
<el-input v-model="queryParams.params.billNo" placeholder="" clearable />
<el-input v-model="queryParams.params.billNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="单据日期">
<el-date-picker v-model="queryParams.params.createTimeStart" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
<el-date-picker v-model="queryParams.params.createTimeEnd" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;">
</el-date-picker>
<el-date-picker v-model="queryParams.params.createTimeStart" type="date" placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;" />
<span style="padding: 0 8px"></span>
<el-date-picker v-model="queryParams.params.createTimeEnd" type="date" placeholder="选择日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;" />
</el-form-item>
<el-form-item label="来源单号">
<el-input v-model="queryParams.params.sourceBillNo" placeholder="" clearable />
<el-input v-model="queryParams.params.sourceBillNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="单据状态">
<el-select v-model="queryParams.params.billState" placeholder="请选择">
<el-option v-for="(item,i) in billStateList" :key="item.sid" :label="item.name" :value="item.name">
<el-option v-for="item in billStateList" :key="item.sid" :label="item.name" :value="item.name">
</el-option>
</el-select>
</el-form-item>
@ -36,317 +33,275 @@
</div>
</div>
</div>
<!-- Start 项目列表头部 -->
<div class="listtop">
<div class="tit">上架单列表</div>
</div>
<!-- End 项目列表头部 -->
<!-- Start 项目列表 -->
<div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
@selection-change="selectionLineChangeHandle">
<el-table-column fixed width="50" type="selection" align="center" />
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" @selection-change="selectionLineChangeHandle">
<el-table-column fixed width="50" type="selection" align="center"/>
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column fixed label="操作" align="center" width="100">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toRelevancy(scope.row)">查看</el-button>
<el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="billNo" label="单据编号" align="center" />
<el-table-column prop="createTime" label="单据日期" align="center" />
<el-table-column prop="createByName" label="制单人" align="center" />
<el-table-column prop="sourceBillNo" label="来源单号" align="center" />
<el-table-column prop="billState" label="单据状态" align="center" />
<el-table-column prop="billNo" label="单据编号" align="center"/>
<el-table-column prop="createTime" label="单据日期" align="center"/>
<el-table-column prop="createByName" label="制单人" align="center"/>
<el-table-column prop="sourceBillNo" label="来源单号" align="center"/>
<el-table-column prop="billState" label="单据状态" align="center"/>
</el-table>
</div>
<!-- End 项目列表 -->
<div class="pages">
<div class="tit" />
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
:limit.sync="queryParams.size" class="pagination" @pagination="loadList" />
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current" :limit.sync="queryParams.size" class="pagination" @pagination="loadList"/>
</div>
</div>
</div>
<!-- End 查询和其列表部分 -->
<!-- 新增修改部分组件 -->
<divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList" />
<divInfo v-show="viewState == 4" ref="divinfo" @doback="resetState" @reloadlist="loadList" />
<divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList"/>
<divInfo v-show="viewState == 4" ref="divinfo" @doback="resetState" @reloadlist="loadList"/>
</div>
</template>
<script>
import req from '@/api/storage/upShelf.js'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import divAdd from './upShelfAdd.vue'
import divInfo from './upShelfInfo.vue'
export default {
components: {
ButtonBar,
Pagination,
pageye,
divAdd,
divInfo
},
data() {
return {
formobj: {
sid: "",
reviewStatus: "",
remarks: ''
import req from '@/api/storage/upShelf.js'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import divAdd from './upShelfAdd.vue'
import divInfo from './upShelfInfo.vue'
export default {
components: {
ButtonBar,
Pagination,
divAdd,
divInfo
},
data() {
return {
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
searchxianshitit: '显示查询条件',
tableLoading: false,
dataList: [],
btnList: [
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
searchxianshitit: '显示查询条件',
tableLoading: false,
dataList: [],
btnList: [{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toPrintLabel',
btnLabel: '打印标签'
},
// {
// type: 'primary',
// size: 'small',
// icon: 'plus',
// btnKey: 'toAdd',
// btnLabel: ''
// },
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
name: '',
billNo: "",
sourceBillNo: "",
createTimestart: '',
createTimeEnd: '',
billstate: '',
menuUrl: '',
orgPath: '',
usersid: ""
}
// {
// type: 'primary',
// size: 'small',
// icon: 'plus',
// btnKey: 'toAdd',
// btnLabel: ''
// },
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
name: '',
billNo: '',
sourceBillNo: '',
createTimestart: '',
createTimeEnd: '',
billstate: '',
menuUrl: '',
orgPath: '',
usersid: ''
}
},
sids: [],
selectionList: [],
billStateList: [
{
name: '新建',
sid: '0'
},
sids: [],
selectionList: [],
billStateList: [{
name: "新建",
sid: "0"
},
{
name: "已完成",
sid: "1"
}
],
sids: []
}
{
name: '已完成',
sid: '1'
}
]
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
this.loadList()
},
methods: {
selectionLineChangeHandle(val) {
this.selectionList = val
const aa = []
val.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
created() {
this.loadList()
btnHandle(btnKey) {
switch (btnKey) {
case 'doDel':
this.doDel()
break
case 'toAdd':
this.toAdd()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
methods: {
toPrintLabel() {
if (this.selectionList.length != 1) {
this.$message({
type: 'warning',
message: "请选择一条数据。",
showClose: true
doDel() {
if (this.sids.length > 0) {
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
return
}
},
selectionLineChangeHandle(val) {
console.log("val", val);
this.selectionList = val
const aa = []
val.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
switch (btnKey) {
case 'toPrintLabel':
this.toPrintLabel()
break
case 'doDel':
this.doDel()
break
case 'toAdd':
this.toAdd()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
doDel() {
if (this.sids.length > 0) {
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then((resp) => {
loading.close()
if (resp.success) {
this.$message({
type: 'success',
message: resp.msg,
showClose: true
})
this.loadList()
} else {
// resp.code
}
}).catch(e => {
loading.close()
})
}).catch(() => {})
} else {
this.$message({
showClose: true,
message: '请至少选择一条记录进行删除操作'
req.deleteBySids(this.sids).then((resp) => {
loading.close()
if (resp.success) {
this.$message({
type: 'success',
message: resp.msg,
showClose: true
})
this.loadList()
} else {
// resp.code
}
}).catch(e => {
loading.close()
})
}
},
loadList() {
this.tableLoading = true
this.queryParams.params.userSid = window.sessionStorage.getItem('userSid')
this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.queryParams.params.menuUrl = this.$route.path
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: '',
billNo: "",
sourceBillNo: "",
createTimestart: '',
createTimeEnd: '',
billstate: '',
menuUrl: '',
orgPath: '',
usersid: ""
}
}
this.loadList()
},
toAdd(row) {
if (this.selectionList.length != 1) {
this.$message({
type: 'warning',
message: "请选择一条数据。",
showClose: true
})
return
} else {
this.$message({
showClose: true,
message: '请至少选择一条记录进行删除操作'
})
}
},
loadList() {
this.tableLoading = true
this.queryParams.params.userSid = window.sessionStorage.getItem('userSid')
this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.queryParams.params.menuUrl = this.$route.path
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
if (this.selectionList[0].billState == '完成') {
this.$message({
type: 'warning',
message: "此记录已完成,不可操作。",
showClose: true
})
return
}).catch(() => {
this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: '',
billNo: '',
sourceBillNo: '',
createTimestart: '',
createTimeEnd: '',
billstate: '',
menuUrl: '',
orgPath: '',
usersid: ''
}
this.viewState = 2
this.$refs['divadd'].showEdit(this.selectionList[0])
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
toRelevancy(row) {
this.viewState = 4
this.$refs['divinfo'].showEdit(row)
},
resetState() {
this.viewState = 1
},
}
this.loadList()
},
toAdd(row) {
if (this.selectionList.length !== 1) {
this.$message({
type: 'warning',
message: '请选择一条数据。',
showClose: true
})
return
}
if (this.selectionList[0].billState === '完成') {
this.$message({
type: 'warning',
message: '此记录已完成,不可操作。',
showClose: true
})
return
}
this.viewState = 2
this.$refs['divadd'].showEdit(this.selectionList[0])
},
toInfo(row) {
this.viewState = 4
this.$refs['divinfo'].showEdit(row)
},
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

531
yxt-as-ui/src/views/storage/upShelf/upShelfAdd.vue

@ -1,20 +1,13 @@
<template>
<div>
<div class="app-container">
<div class="tab-header webtop">
<!-- 标题 -->
<div>{{title}}上架单</div>
<!-- start 添加修改按钮 -->
<div>{{ title }}上架单</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title">
<div>基础信息</div>
@ -30,21 +23,19 @@
</el-col>
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item><el-input v-model="formobj.createByName" placeholder="" class="addinputw addinputInfo"
clearable /></el-form-item>
<el-form-item>
<el-input v-model="formobj.createByName" placeholder="" class="addinputw addinputInfo" clearable/>
</el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 单据日期</div>
<el-form-item prop="createTime"> <el-date-picker v-model="formobj.createTime" type="date"
class="addinputw addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
<div class="span-sty"><span class="must">*</span>单据日期</div>
<el-form-item prop="createTime">
<el-date-picker v-model="formobj.createTime" type="date" class="addinputw addinputInfo" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">来源单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
@ -54,371 +45,229 @@
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty"><span class="must">*</span> 上架人</div>
<div class="span-sty"><span class="must">*</span>上架人</div>
<el-form-item prop="upShelfName">
<el-select v-model="formobj.upShelfName" filterable clearable placeholder="请选择"
class="addinputw addinputInfo" @change="allOrgperSelect">
<el-select v-model="formobj.upShelfName" filterable clearable placeholder="请选择" class="addinputw addinputInfo" @change="allOrgperSelect">
<el-option v-for="item in allOrgperList" :key="item.sid" :label="item.name" :value="item.sid">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty">备注</div>
<el-form-item><el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo"
clearable /></el-form-item>
<el-form-item>
<el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo" clearable/>
</el-form-item>
</el-col>
</el-row>
<div class="title">
<div>商品列表</div>
</div>
<div class="title">商品列表</div>
<el-table v-loading="listLoading" :data="formobj.list" border>
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column fixed label="操作" wid align="center" width="120">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="doGoodsBatch(scope.row)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="商品名称" prop="goodsSkuTitle" align="center" width="200" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" width="150" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150" />
<el-table-column label="单位" prop="unit" align="center" width="120" />
<!-- <el-table-column label="仓库" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.warehouseName" placeholder="请选择" clearable
@change="selectWarehouseName(scope.row,$event)">
<el-option v-for="(item,i) in warehouseList" :key="i" :label="item.warehouseName" :value="item.sid">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="库位" align="center" width="180">
<template slot-scope="scope">
<el-select v-model="scope.row.warehouseRackName" :disabled="scope.row.warehouseName==''" clearable
@focus="getWarehouseAreaList(scope.row.warehouseSid)" placeholder="请选择"
@change="selectWarehouseAreaCode">
<el-option v-for="(item,i) in warehouseRackList" :key="i" :label="item.areaCode" :value="item.sid">
</el-option>
</el-select>
<el-button type="primary" size="mini" @click="doGoodsBatch(scope.$index)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="批次号" prop="batchNumber" align="center" width="300" /> -->
<el-table-column label="需要上架数量" align="center" width="120">
<el-table-column label="商品名称" prop="goodsSkuTitle" align="center" width="200"/>
<el-table-column label="图号" prop="goodsSkuCode" align="center" width="150"/>
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150"/>
<el-table-column label="单位" prop="unit" align="center" width="120"/>
<el-table-column label="需上架数量" align="center" width="120">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.count" clearable placeholder=""
oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
<el-input @keyup.native="scope.row.count = getNumber(scope.row.count, 0)" v-model="scope.row.count" clearable placeholder="" @input="inputCount(scope.row)"/>
</template>
</el-table-column>
<el-table-column label="载具编号" align="center" width="180">
<el-table-column label="备注" align="center" width="180">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.packageNo" clearable placeholder="" />
<el-input v-model="scope.row.remarks" clearable placeholder=""/>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/storage/upShelf.js'
import req2 from '@/api/storage/allocation.js'
import {
getCurrentDate
} from '@/utils/index.js'
import {
selAllByOrgSidPath
} from '@/api/Common/dictcommons'
export default {
components: {},
data() {
return {
title: "【新增】",
listLoading: false,
submitdisabled: false,
formobj: {
"sid": "",
"billNo": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"createTime": getCurrentDate(),
"deptName": '',
"deptSid": '',
"sourceBillNo": "",
"sourceBillSid": "",
"billState": "新建",
"upShelfSid": "",
"upShelfName": '',
"list": [
],
"remarks": ""
},
hideUploadBtn: false,
supplierList: [],
warehouseList: [],
warehouseRackList: [],
// commodity
commodityKey: 1,
commodityLoading: false,
commodityQuery: {
current: 1,
size: 2,
total: 0,
params: {
name: '',
inOrg: "",
outOrg: ""
}
},
commodityData: [],
isUpdata: false,
allOrgperList: [],
rules: {
createTime: [{
required: true,
message: '到货日期不能为空',
trigger: 'change'
}],
upShelfName: [{
required: true,
message: '请选择上架人员',
trigger: 'change'
}],
}
import req from '@/api/storage/upShelf.js'
import { getCurrentDate } from '@/utils/index.js'
import { selAllByOrgSidPath } from '@/api/Common/dictcommons'
export default {
data() {
return {
title: '【新增】',
listLoading: false,
submitdisabled: false,
formobj: {
sid: '',
billNo: '',
createBySid: window.sessionStorage.getItem('userSid'),
createByName: window.sessionStorage.getItem('name'),
createTime: getCurrentDate(),
deptName: '',
deptSid: '',
sourceBillNo: '',
sourceBillSid: '',
billState: '新建',
upShelfSid: '',
upShelfName: '',
list: [],
remarks: ''
},
warehouseRackList: [],
allOrgperList: [],
rules: {
createTime: [{ required: true, message: '到货日期不能为空', trigger: 'change' }],
upShelfName: [{ required: true, message: '请选择上架人员', trigger: 'change' }]
}
}
},
methods: {
getNumber(val, limit) {
val = val.replace(/[^0-9.]/g, '') //
val = val.replace(/^00/, '0.') // 0
val = val.replace(/^\./g, '0.') // 0.
val = val.replace(/\.{2,}/g, '.') //
val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.'); //
/^0\d+/.test(val) ? val = val.slice(1) : '' // 0
const str = '^(\\d+)\\.(\\d{' + limit + '}).*$'
const reg = new RegExp(str)
if (limit === 0) {
//
val = val.replace(reg, '$1')
} else {
//
val = val.replace(reg, '$1.$2')
}
return val
},
created() {},
methods: {
indexMethod(index) {
return index + 1
},
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
if (this.formobj.list.length == 0) {
this.$message({
showClose: true,
type: 'error',
message: '请添加商品'
})
indexMethod(index) {
return index + 1
},
saveOrUpdate() {
if (this.formobj.list.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请添加商品' })
return
}
for (var i = 0; i < this.formobj.list.length; i++) {
if (parseFloat(this.formobj.list[i].actualCount) === 0 && this.formobj.list[i].actualCount !== '') {
this.$message({ showClose: true, type: 'error', message: '商品上架数量不能为空' })
return
}
for (var i = 0; i < this.formobj.list.length; i++) {
var item = this.formobj.list[i]
if (item.actualCount == 0) {
this.$message({
showClose: true,
type: 'error',
message: '商品上架数量不能为空'
})
return
}
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.save(this.formobj).then((res) => {
if (res.success) {
this.$message({
showClose: true,
type: 'success',
message: '保存成功'
})
this.handleReturn('true')
} else {
this.submitdisabled = false
}
}).catch(() => {
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.save(this.formobj).then((res) => {
if (res.success) {
this.$message({
showClose: true,
type: 'success',
message: '保存成功'
})
this.handleReturn('true')
} else {
this.submitdisabled = false
})
}
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
"sid": "",
"billNo": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createByName": window.sessionStorage.getItem('name'),
"createTime": getCurrentDate(),
"deptName": '',
"deptSid": '',
"sourceBillNo": "",
"sourceBillSid": "",
"billState": "新建",
"upShelfSid": "",
"upShelfName": '',
"list": [
],
"remarks": ""
}
this.submitdisabled = false
this.$emit('doback')
},
showAdd() {
this.title = "【新增】"
this.getWarehouseList()
this.getAllOrgper()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
},
showEdit(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.getWarehouseList()
this.getAllOrgper()
this.title = "【修改】"
var params = {
sid: row.sid
}
req.init(params)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}
}).catch(() => {
this.submitdisabled = false
})
.catch(e => {
this.formobj = {}
})
},
getAllOrgper() {
selAllByOrgSidPath({
orgSidPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.allOrgperList = res.data
console.log("aaaaaa", this.allOrgperList);
}
})
},
allOrgperSelect(val) {
console.log("allOrgperSelect", val);
const choose = this.allOrgperList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseName', choose)
this.formobj.upShelfName = choose[0].name
this.formobj.upShelfSid = choose[0].sid
},
getWarehouseList() {
var parpams = {
orgPath: window.sessionStorage.getItem('defaultOrgPath'),
}
req2.getWarehouses(parpams).then((res) => {
if (res.success) {
this.warehouseList = res.data
console.log("aaaaaa", this.warehouseList);
}
})
},
getWarehouseAreaList(sid) {
var query = {
ckSid: sid
})
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
sid: '',
billNo: '',
createBySid: window.sessionStorage.getItem('userSid'),
createByName: window.sessionStorage.getItem('name'),
createTime: getCurrentDate(),
deptName: '',
deptSid: '',
sourceBillNo: '',
sourceBillSid: '',
billState: '新建',
upShelfSid: '',
upShelfName: '',
list: [],
remarks: ''
}
this.submitdisabled = false
this.$emit('doback')
},
showAdd() {
this.title = '【新增】'
this.getAllOrgper()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
},
showEdit(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.getAllOrgper()
this.title = '【修改】'
req.init({ sid: row.sid }).then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}
req2.getWarehouseareas(query).then((res) => {
if (res.success) {
this.warehouseRackList = res.data
console.log("aaaaaa", this.warehouseRackList);
}
})
},
selectWarehouseName(row, val) {
console.log("selectWarehouseName", row);
console.log("selectWarehouseName", val);
const choose = this.warehouseList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseName', choose)
row.warehouseName = choose[0].warehouseName
row.warehouseSid = choose[0].sid
},
selectWarehouseAreaCode(val) {
console.log("selectWarehouseAreaCode", val);
const choose = this.warehouseRackList.filter((item) => item.sid == val)
console.log('>>>>>>>>>selectWarehouseAreaCode', choose)
row.warehouseRackName = choose[0].areaCode
row.warehouseRackSid = choose[0].sid
},
}).catch(e => {
this.formobj = {}
})
},
getAllOrgper() {
selAllByOrgSidPath({ orgSidPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.allOrgperList = res.data
}
})
},
allOrgperSelect(val) {
const choose = this.allOrgperList.filter((item) => item.sid === val)
this.formobj.upShelfName = choose[0].name
this.formobj.upShelfSid = choose[0].sid
},
doGoodsBatch(index) {
this.formobj.list.splice(index, 1)
},
inputCount(row) {
if (row.count !== '' && row.maxCount !== '' && parseFloat(row.count) - parseFloat(row.maxCount) < 0) {
row.count = row.maxCount
}
}
}
}
</script>
<style scoped>
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
/deep/ .el-form-item__error {
margin-left: 120px !important;
}
.must {
color: #f00;
}
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.first_row {
border-top: 1px solid #E0E3EB;
}
</style>

128
yxt-as-ui/src/views/storage/upShelf/upShelfInfo.vue

@ -1,42 +1,28 @@
<template>
<div>
<div class="app-container">
<div class="tab-header webtop">
<!-- 标题 -->
<div>上架单</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
<!-- end 详情按钮 -->
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<div class="title">
<div>基础信息</div>
</div>
<el-row class="first_row">
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">制单部门</div>
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">单据日期</div>
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<div class="span-sty">来源单号</div>
<el-form-item><span class="addinputInfo">{{ formobj.sourceBillNo }}</span></el-form-item>
@ -45,117 +31,75 @@
<div class="span-sty">单据状态</div>
<el-form-item><span class="addinputInfo">{{ formobj.billState }}</span></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">上架人</div>
<el-form-item><span class="addinputInfo">{{ formobj.upShelfName }}</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.remarks }}</span></el-form-item>
</el-col>
</el-row>
<div class="title">
<div>商品列表</div>
</div>
<div class="title">商品列表</div>
<el-table v-loading="listLoading" :data="formobj.list" border>
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="80" />
<el-table-column fixed label="商品名称" prop="goodsSpuName" align="center" width="200" />
<el-table-column label="商品编码" prop="goodsSkuCode" align="center" />
<el-table-column label="图号" prop="goodsSkuCode" align="center" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" />
<el-table-column label="单位" prop="unit" align="center" />
<!-- <el-table-column label="批次号" prop="batchNumber" align="center" />
<el-table-column label="仓库" prop="warehouseName" align="center" />
<el-table-column label="库位" prop="warehouseRackCode" align="center" /> -->
<el-table-column label="需上架数量" prop="count" align="center" />
<el-table-column label="已上架数量" prop="actualCount" align="center" />
<el-table-column label="未上架数量" prop="noShelfCount" align="center" />
<el-table-column label="载具编号" prop="packageNo" align="center" />
<el-table-column label="备注" prop="remarks" align="center" />
</el-table>
</el-form>
</div>
</div>
</template>
<script>
import req from '@/api/storage/upShelf.js'
import req from '@/api/storage/upShelf.js'
export default {
components: {},
data() {
return {
listLoading: false,
submitdisabled: false,
formobj: {},
}
export default {
data() {
return {
listLoading: false,
formobj: {}
}
},
methods: {
indexMethod(index) {
return index + 1
},
methods: {
indexMethod(index) {
return index + 1
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.$emit('doback')
},
showAdd() {
},
showEdit(row) {
var params = {
sid: row.sid
handleReturn() {
this.formobj = {}
this.$emit('doback')
},
showEdit(row) {
req.init(row.sid).then(resp => {
if (resp.success) {
this.formobj = resp.data
}
req.init(row.sid)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
}
})
.catch(e => {
this.formobj = {}
})
}
}).catch(e => {
this.formobj = {}
})
}
}
}
</script>
<style scoped>
.span-sty {
width: 130px !important;
}
.addinputInfo {
margin-left: 120px !important;
}
.span-sty {
width: 130px !important;
}
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw {
margin-left: 120px !important;
width: calc(100% - 115px);
}
.addinputInfo {
margin-left: 120px !important;
}
.first_row {
border-top: 1px solid #E0E3EB;
}
.titleOne {
padding: 7px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.first_row {
border-top: 1px solid #E0E3EB;
}
</style>

12
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyService.java

@ -790,14 +790,17 @@ public class AsBillSettelApplyService extends MybatisBaseService<AsBillSettelApp
flowNodeQuery.setParameter("销售价折扣");
flowNodeQuery.setValue(discountC);
boolean f0 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
flowNodeQuery.setType(1);
flowNodeQuery.setNodeNames("发起申请");
flowNodeQuery.setParameter("优惠金额");
flowNodeQuery.setValue(discountAmountC);
boolean f1 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
flowNodeQuery.setType(0);
flowNodeQuery.setNodeNames("前台主管审批");
flowNodeQuery.setParameter("销售价折扣");
flowNodeQuery.setValue(discountC);
boolean f2 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
flowNodeQuery.setType(0);
flowNodeQuery.setNodeNames("自有二级站长审批");
flowNodeQuery.setParameter("销售价折扣");
flowNodeQuery.setValue(discountC);
@ -841,15 +844,17 @@ public class AsBillSettelApplyService extends MybatisBaseService<AsBillSettelApp
flowNodeQuery.setParameter("销售价折扣");
flowNodeQuery.setValue(discountC);
boolean f0 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
flowNodeQuery.setType(1);
flowNodeQuery.setNodeNames("发起申请");
flowNodeQuery.setParameter("优惠金额");
flowNodeQuery.setValue(discountAmountC);
boolean f1 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
flowNodeQuery.setType(0);
flowNodeQuery.setNodeNames("前台主管审批");
flowNodeQuery.setParameter("销售价折扣");
flowNodeQuery.setValue(discountC);
boolean f2 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
flowNodeQuery.setType(0);
flowNodeQuery.setNodeNames("自有二级站长审批");
flowNodeQuery.setParameter("销售价折扣");
flowNodeQuery.setValue(discountC);
@ -2434,7 +2439,7 @@ public class AsBillSettelApplyService extends MybatisBaseService<AsBillSettelApp
cost = new BigDecimal(s.getGoodsCost());
}
SysFlowNodeQuery flowNodeQuery = new SysFlowNodeQuery();
flowNodeQuery.setType(0);
flowNodeQuery.setType(1);
flowNodeQuery.setFlowName("商品配件销售结算申请");
flowNodeQuery.setCreateOrgName(vo.getUseOrgName());
flowNodeQuery.setProcDefId("process_q2p7s958752");
@ -2442,14 +2447,17 @@ public class AsBillSettelApplyService extends MybatisBaseService<AsBillSettelApp
flowNodeQuery.setParameter("优惠金额");
flowNodeQuery.setValue(discountAmountC);
boolean f0 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
flowNodeQuery.setType(0);
flowNodeQuery.setNodeNames("发起申请");
flowNodeQuery.setParameter("销售价折扣");
flowNodeQuery.setValue(discountC);
boolean f1 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
flowNodeQuery.setType(0);
flowNodeQuery.setNodeNames("配件主管审批");
flowNodeQuery.setParameter("销售价折扣");
flowNodeQuery.setValue(discountC);
boolean f2 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
flowNodeQuery.setType(0);
flowNodeQuery.setNodeNames("自有二级站长审批");
flowNodeQuery.setParameter("销售价折扣");
flowNodeQuery.setValue(discountC);

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

@ -76,6 +76,7 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
private AsBusrepairBillNodeService asBusrepairBillNodeService;
@Autowired
private WmsInventoryRecordFeign wmsInventoryRecordFeign;
/**
* 维修出/退库分页列表
*
@ -297,7 +298,7 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
}
if (count.compareTo(BigDecimal.ZERO) > 0) {
AsBusrepairInventorybillDetail detail = new AsBusrepairInventorybillDetail();
BeanUtil.copyProperties(sDto, detail,"id","sid");
BeanUtil.copyProperties(sDto, detail, "id", "sid");
if (isEnable == 1) {
detail.setCurrentCount(count);
} else if (isEnable == 2) {
@ -307,10 +308,15 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
BigDecimal discount = BigDecimal.ZERO;//折扣
BigDecimal cost = BigDecimal.ZERO;//成本单价
BigDecimal price = BigDecimal.ZERO;// 单价
BigDecimal amountBefore = BigDecimal.ZERO;//退货之前材料费
BigDecimal amountSub = BigDecimal.ZERO;//退货后材料费差额
if (null != detailUpdate) {
if (null != detailUpdate.getCurrentCount()) {
currentCount = detailUpdate.getCurrentCount();
}
if (null != detailUpdate.getAmount()) {
amountBefore = detailUpdate.getAmount();
}
if (null != detailUpdate.getDiscount()) {
discount = new BigDecimal(detailUpdate.getDiscount()).multiply(new BigDecimal("0.1"));
}
@ -332,6 +338,15 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
if (StringUtils.isNotBlank(sDto.getReturnAmount())) {
detail.setAmount(new BigDecimal(sDto.getReturnAmount()));
}
//退货后修改维修单应收实收材料费
amountSub = amountBefore.subtract(priceSubtract);
BigDecimal receivableAmount = asBusrepairBill.getReceivableAmount();
BigDecimal actualAmount = asBusrepairBill.getActualAmount();
BigDecimal goodsAmount = asBusrepairBill.getGoodsAmount();
asBusrepairBill.setReceivableAmount(receivableAmount.subtract(amountSub));
asBusrepairBill.setActualAmount(actualAmount.subtract(amountSub));
asBusrepairBill.setGoodsAmount(goodsAmount.subtract(amountSub));
asBusrepairBillService.updateById(asBusrepairBill);
}
}
detail.setBillSid(entity.getSid());

5
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillMapper.xml

@ -48,9 +48,10 @@
wab.supplierName,
DATE_FORMAT(wab.deliveryDate, '%Y-%m-%d') as deliveryDate,
case wab.billState when 0 then '在途' when 1 then '部分收货'
when 2 then '已收货' when 3 then '已取消'
when 2 then '已收货' when 3 then '已收货(部分终止)'
end as billState,
wab.reviewStatus
wab.reviewStatus,
wab.manufactorBillNo
from wms_ans_bill wab
where sid = #{sid}
</select>

6
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillService.java

@ -9,11 +9,7 @@ import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.wms.biz.base.wmswarehousearea.WmsWarehouseAreaVo;
import com.yxt.wms.biz.inventory.wmsansbilldetail.*;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBill;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillQuery;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillVo;
import com.yxt.wms.feign.portal.privilege.PrivilegeQuery;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationVo;
@ -83,7 +79,7 @@ public class WmsAnsBillService extends MybatisBaseService<WmsAnsBillMapper, WmsA
String orgCode = resultBean1.getData().getOrgCode();
BillNo b = new BillNo();
b.setOrgCode(orgCode);
b.setBillType("YGDHTZD");
b.setBillType("YQDHTZD");
String bill = Rule.getBill(b);
String i = baseMapper.selectNum(bill);
String billNo = "";

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsDetailsVo.java

@ -5,7 +5,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -35,6 +34,7 @@ public class WmsAnsDetailsVo {
//单据状态
private String billState;
private String manufactorBillNo; //厂家订单号
@ApiModelProperty("审核状态(待审核、审核通过、审核拒绝)")
private String reviewStatus;

7
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java

@ -2,7 +2,6 @@ package com.yxt.wms.biz.inventory.wmsreceiptbill;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
@ -13,26 +12,21 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBill;
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBillService;
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBillVo;
import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetail;
import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetailService;
import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsListDetailsVo;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetail.*;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatch;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchDto2;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchMapper;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchService;
import com.yxt.wms.biz.inventory.wmsshelfbill.ShelfInitVo;
import com.yxt.wms.biz.inventory.wmsshelfbill.WmsShelfBillDto;
import com.yxt.wms.biz.inventory.wmsshelfbill.WmsShelfBillService;
import com.yxt.wms.biz.inventory.wmsshelfbilldetail.ShelfInitListVo;
import com.yxt.wms.biz.inventory.wmsshelfbilldetail.WmsShelfBillDetailDto;
import com.yxt.wms.biz.inventory.wmsshelfbilldetail.WmsShelfBillDetailService;
import com.yxt.wms.feign.portal.privilege.PrivilegeQuery;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.wms.feign.portal.sysuser.SysUserFeign;
import com.yxt.wms.feign.portal.sysuser.SysUserVo;
import com.yxt.wms.utils.BillNo;
import com.yxt.wms.utils.Rule;
import org.springframework.beans.factory.annotation.Autowired;
@ -40,7 +34,6 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
* @description:

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailDto2.java

@ -4,8 +4,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
@ -72,4 +70,5 @@ public class WmsReceiptBillDetailDto2 {
private String shelfLife;
@ApiModelProperty("已分配数量 ")
private String allotmentNum;
private String maxCount;
}

6
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailVo.java

@ -1,13 +1,8 @@
package com.yxt.wms.biz.inventory.wmsreceiptbilldetail;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchDto;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -65,6 +60,7 @@ public class WmsReceiptBillDetailVo {
private Integer shelfLife;
@ApiModelProperty("预约数量(采购订单数量)")
private String orderCount;
private String maxCount;

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

@ -546,6 +546,7 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
}
BigDecimal subtract = actualInCount.subtract(shelfCount);
shelfInitListVo.setCount(subtract.toString());
shelfInitListVo.setMaxCount(subtract.toString());
// shelfInitListVo.setBatchNumber(wmsReceiptBillDetailBatch.getBatchNumber());
// shelfInitListVo.setWarehouseSid(v.getWarehouseSid());
// shelfInitListVo.setWarehouseRackSid(v.getWarehouseRackSid());

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/app/AppDetailsVo.java

@ -59,8 +59,8 @@ public class AppDetailsVo {
private String count;
@ApiModelProperty("已上/未上架数量")
private String actualNoCount;
//载具编号
private String packageNo;
//备注
private String remarks;
}

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/ShelfDetailsListVo.java

@ -45,8 +45,8 @@ public class ShelfDetailsListVo implements Vo {
private String warehouseRackName;
//已上架数量
private String actualCount;
//载具编号
private String packageNo;
//备注
private String remarks;
}

8
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/ShelfInitListVo.java

@ -3,8 +3,6 @@ package com.yxt.wms.biz.inventory.wmsshelfbilldetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
@ -37,6 +35,8 @@ public class ShelfInitListVo {
private String actualCount;
@ApiModelProperty("未上架数量")
private String noShelfCount;
@ApiModelProperty("载具编号")
private String packageNo;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("上架数量最大值")
private String maxCount;
}

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/WmsShelfBillDetail.java

@ -37,7 +37,7 @@ public class WmsShelfBillDetail extends BaseEntity {
private BigDecimal count;
@ApiModelProperty("已上架数量(根据上架记录计算)")
private BigDecimal actualCount;
@ApiModelProperty("载具编号")
private String packageNo;
@ApiModelProperty("备注")
private String remarks;
}

6
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/WmsShelfBillDetailDto.java

@ -3,8 +3,6 @@ package com.yxt.wms.biz.inventory.wmsshelfbilldetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
@ -35,7 +33,7 @@ public class WmsShelfBillDetailDto {
private String count;
@ApiModelProperty("已上架数量(根据上架记录计算)")
private String actualCount;
@ApiModelProperty("载具编号")
private String packageNo;
@ApiModelProperty("备注")
private String remarks;
}

Loading…
Cancel
Save