Browse Source

完善工单结算推送应收,完善商品管理

master
fanzongzhe 1 year ago
parent
commit
a7136e0f94
  1. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java
  2. 45
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
  3. 101
      yxt-as/src/main/java/com/yxt/anrui/as/feign/fin/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedDto.java
  4. 64
      yxt-as/src/main/java/com/yxt/anrui/as/feign/fin/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedFeign.java
  5. 60
      yxt-as/src/main/java/com/yxt/anrui/as/feign/fin/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedFeignFallback.java
  6. 30
      yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsSpuRest.java
  7. 4
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuService.java
  8. 5
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsskuextend/BaseGoodsSkuExtendService.java
  9. 47
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsDetailsDto.java
  10. 46
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsDetailsVo.java
  11. 4
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpu.java
  12. 24
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpuListQuery.java
  13. 39
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpuListVo.java
  14. 4
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpuMapper.java
  15. 58
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpuMapper.xml
  16. 364
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpuService.java

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java

@ -1012,7 +1012,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService<LoanHomevisitPr
//受委托人
map.put("swtr", finCompanyInvoicingDetailsVo.getName());
//年
map.put("year", DateUtil.year(new Date()));
map.put("year", String.valueOf(DateUtil.year(new Date())));
//月
map.put("month", DateUtil.month(new Date()) + 1);
//日

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

@ -29,6 +29,8 @@ import com.yxt.anrui.as.biz.asbusrepairbillsitem.AsBusrepairBillSitemService;
import com.yxt.anrui.as.biz.asbusrepairbillsitemrepairer.AsBusrepairBillSitemRepairerService;
import com.yxt.anrui.as.biz.asbusrepairbillvech.AsBusrepairBillVechService;
import com.yxt.anrui.as.biz.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailService;
import com.yxt.anrui.as.feign.fin.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedDto;
import com.yxt.anrui.as.feign.fin.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign;
import com.yxt.anrui.as.feign.fms.FmsReceivesettle;
import com.yxt.anrui.as.feign.fms.FmsReceivesettleDto;
import com.yxt.anrui.as.feign.fms.FmsReceivesettleFeign;
@ -37,6 +39,7 @@ import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign;
import com.yxt.anrui.as.feign.portal.sysuser.SysUserVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
@ -89,7 +92,8 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
private AsBusrepairBillAitemService asBusrepairBillAitemService;
@Autowired
private AsBusrepairInventorybillDetailService asBusrepairInventorybillDetailService;
@Autowired
private FinUncollectedReceivablesDetailedFeign finUncollectedReceivablesDetailedFeign;
/**
* 维修领料获取派工单
*
@ -475,7 +479,7 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
SettleVo settleVo = new SettleVo(); //结算信息
BeanUtil.copyProperties(receivesettle, settleVo);
if (null != receivesettle.getSettleTime()) {
settleVo.setSettleTime(DateUtil.formatTime(receivesettle.getSettleTime()));
settleVo.setSettleTime(sdf.format(receivesettle.getSettleTime()));
}
vo.setSettleVo(settleVo);
}
@ -674,6 +678,9 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
AsBusrepairBill asBusrepairBill = fetchBySid(sid);
if (asBusrepairBill.getNodeCode() == 5) {
if (asBusrepairBill.getSubject().equals("保内")) {
if (asBusrepairBill.getOldIsInInventory() != 1) {
return rb.setMsg("请先完成旧件入库,再进行操作!");
}
asBusrepairBill.setNodeCode(6);
asBusrepairBill.setNodeName("出厂");
asBusrepairBill.setNodeTime(new DateTime());
@ -696,6 +703,10 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
String sid = dto.getSid();
AsBusrepairBill asBusrepairBill = fetchBySid(sid);
if (asBusrepairBill.getNodeCode() == 5) {
if (asBusrepairBill.getSubject().equals("保内")) {
if (asBusrepairBill.getOldIsInInventory() != 1) {
return rb.setMsg("请先完成旧件入库,再进行操作!");
}
asBusrepairBill.setNodeCode(6);
asBusrepairBill.setNodeName("出厂");
asBusrepairBill.setNodeTime(new DateTime());
@ -708,6 +719,7 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
billNode.setCreateBySid(dto.getOperatorSid());
billNode.setNodeCode("6");
asBusrepairBillNodeService.insert(billNode);
}
SettleVo settleVo = dto.getSettleVo();
if (null != settleVo) {
FmsReceivesettleDto settleDto = new FmsReceivesettleDto();
@ -717,6 +729,35 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
settleDto.setSourceBillSid(dto.getSid());
settleDto.setSourceBillNo(asBusrepairBill.getBillNo());
fmsReceivesettleFeign.save(settleDto);
FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto();
finUncollectedReceivablesDetailedDto.setCreateByName(asBusrepairBill.getCreateByName());
finUncollectedReceivablesDetailedDto.setCreateBySid(asBusrepairBill.getCreateBySid());
finUncollectedReceivablesDetailedDto.setCustomerSid(asBusrepairBill.getCustomerSid());
finUncollectedReceivablesDetailedDto.setCustomerName(asBusrepairBill.getCustomerName());
AsBusrepairBillVech billVech = asBusrepairBillVechService.fetchByBillSid(asBusrepairBill.getSid());
if (null != billVech) {
if (StringUtils.isNotBlank(billVech.getVinNo())) {
finUncollectedReceivablesDetailedDto.setVIN(billVech.getVinNo());
}
}
finUncollectedReceivablesDetailedDto.setCustomerPhone(asBusrepairBill.getMobile());
finUncollectedReceivablesDetailedDto.setUseOrgSid(asBusrepairBill.getUseOrgSid());
finUncollectedReceivablesDetailedDto.setOrgSidPath(asBusrepairBill.getOrgSidPath());
finUncollectedReceivablesDetailedDto.setReceivablesName("工时费、材料费");
BigDecimal settleAmount = new BigDecimal("0");
BigDecimal otherSettleAmount = new BigDecimal("0");
if (StringUtils.isNotBlank(settleVo.getSettleAmount())) {
settleAmount = new BigDecimal(settleVo.getSettleAmount());
}
if (StringUtils.isNotBlank(settleVo.getOtherSettleAmount())) {
otherSettleAmount = new BigDecimal(settleVo.getOtherSettleAmount());
}
finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney((settleAmount.add(otherSettleAmount)).toString());
finUncollectedReceivablesDetailedDto.setReveivableMoney((settleAmount.add(otherSettleAmount)).toString());
finUncollectedReceivablesDetailedDto.setUseOrgName(asBusrepairBill.getUseOrgName());
finUncollectedReceivablesDetailedDto.setKxState("01");
finUncollectedReceivablesDetailedFeign.saveOrUpdate(finUncollectedReceivablesDetailedDto);
}
}
return rb.success();

101
yxt-as/src/main/java/com/yxt/anrui/as/feign/fin/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedDto.java

@ -0,0 +1,101 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.feign.fin.finuncollectedreceivablesdetailed;
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: FinUncollectedReceivablesDetailedDto.java <br/>
* Class: com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedDto <br/>
* Description: 应收未收款项明细表 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-04-12 17:57:01 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "应收未收款项明细表 数据传输对象", description = "应收未收款项明细表 数据传输对象")
@Data
public class FinUncollectedReceivablesDetailedDto implements Dto {
@ApiModelProperty("应收未收款项sid")
private String sid; // 应收未收款项sid
@ApiModelProperty("创建人接口")
private String createByName; // 创建人接口
@ApiModelProperty("创建人sid")
private String createBySid; // 创建人sid
@ApiModelProperty("合同sid")
private String contractSid; // 合同sid
@ApiModelProperty("合同编号")
private String contractNo; // 合同编号
@ApiModelProperty("客户sid")
private String customerSid; // 客户sid
@ApiModelProperty("客户名称")
private String customerName; // 客户名称
@ApiModelProperty("车架号")
private String VIN; // 车架号
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("联系电话")
private String customerPhone; // 联系电话
@ApiModelProperty("应收项目名称")
private String receivablesName; // 应收项目名称
@ApiModelProperty("当前应收金额")
private String currentReceivableMoney; // 当前应收金额
@ApiModelProperty("应收金额(不变)")
private String reveivableMoney;
private String busVinSid;
@ApiModelProperty("付款方式")
private String payTypeKey;
private String payType;
@ApiModelProperty("应收款项状态")
private String kxState;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("申请人组织路径")
private String orgSidPath;
@ApiModelProperty("采购系统sid")
private String purchaseSystemSid;
@ApiModelProperty("采购系统名称")
private String purchaseSystemName;
@ApiModelProperty("销售专员")
private String staffName;
@ApiModelProperty("销售专员用户sid")
private String staffUserSid;
@ApiModelProperty("销售专员部门")
private String staffDeptName;
@ApiModelProperty("销售专员部门sid")
private String staffDeptSid;
}

64
yxt-as/src/main/java/com/yxt/anrui/as/feign/fin/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedFeign.java

@ -0,0 +1,64 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.feign.fin.finuncollectedreceivablesdetailed;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: anrui-fin(应收未收款项明细表) <br/>
* File: FinUncollectedReceivablesDetailedFeign.java <br/>
* Class: com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign <br/>
* Description: 应收未收款项明细表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-04-12 17:57:01 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "应收未收款项明细表")
@FeignClient(
contextId = "anrui-fin-FinUncollectedReceivablesDetailed",
name = "anrui-fin",
path = "finuncollectedreceivablesdetailed",
fallback = FinUncollectedReceivablesDetailedFeignFallback.class)
public interface FinUncollectedReceivablesDetailedFeign {
@ApiOperation("新增或修改保存")
@PostMapping("/saveOrUpdate")
public ResultBean saveOrUpdate(@RequestBody FinUncollectedReceivablesDetailedDto dto);
}

60
yxt-as/src/main/java/com/yxt/anrui/as/feign/fin/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedFeignFallback.java

@ -0,0 +1,60 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.feign.fin.finuncollectedreceivablesdetailed;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Project: anrui-fin(销售相关) <br/>
* File: FinUncollectedReceivablesDetailedFeignFallback.java <br/>
* Class: com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeignFallback <br/>
* Description: 应收未收款项明细表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-04-12 17:57:01 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Component
public class FinUncollectedReceivablesDetailedFeignFallback implements FinUncollectedReceivablesDetailedFeign {
@Override
public ResultBean saveOrUpdate(FinUncollectedReceivablesDetailedDto dto){
return ResultBean.fireFail().setMsg("接口anrui-fin/finuncollectedreceivablesdetailed/saveOrUpdate无法访问");
}
}

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

@ -1,9 +1,6 @@
package com.yxt.base.apiadmin.base;
import com.yxt.base.biz.base.basegoodsspu.BaseGoodsSpuDto;
import com.yxt.base.biz.base.basegoodsspu.BaseGoodsSpuQuery;
import com.yxt.base.biz.base.basegoodsspu.BaseGoodsSpuService;
import com.yxt.base.biz.base.basegoodsspu.BaseGoodsSpuVo;
import com.yxt.base.biz.base.basegoodsspu.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -23,6 +20,31 @@ public class BaseGoodsSpuRest {
@Autowired
BaseGoodsSpuService baseGoodsSpuService;
@ApiOperation("商品管理分页列表")
@PostMapping("/goodsListPage")
public ResultBean<PagerVo<BaseGoodsSpuListVo>> goodsListPage(@RequestBody PagerQuery<BaseGoodsSpuListQuery> pq) {
return baseGoodsSpuService.goodsListPage(pq);
}
@ApiOperation("保存修改商品信息")
@PostMapping("/saveOrUpdateGoods")
public ResultBean<String> saveOrUpdateGoods(@RequestBody BaseGoodsDetailsDto dto) {
return baseGoodsSpuService.saveOrUpdateGoods(dto);
}
@ApiOperation("商品信息详情回显")
@GetMapping("/goodsDetails/{sid}")
public ResultBean<BaseGoodsDetailsVo> goodsDetails(@PathVariable("sid") String sid) {
return baseGoodsSpuService.goodsDetails(sid);
}
@ApiOperation("根据sid批量删除")
@DeleteMapping("/delGoodsBySids")
public ResultBean delBySids(@RequestBody String[] sids) {
return baseGoodsSpuService.deleteBySids(sids);
}
@ApiOperation("分页列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<BaseGoodsSpuVo>> listPage(@RequestBody PagerQuery<BaseGoodsSpuQuery> pq) {

4
yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodssku/BaseGoodsSkuService.java

@ -48,6 +48,10 @@ public class BaseGoodsSkuService extends MybatisBaseService<BaseGoodsSkuMapper,
@Autowired
private WmsInventoryFeign wmsInventoryFeign;
public BaseGoodsSku getOneBySpuSid(String spuSid) {
return baseMapper.selectOne(new QueryWrapper<BaseGoodsSku>().eq("goodsSpuSid", spuSid));
}
public ResultBean<PagerVo<BaseGoodsSkuVo>> listPage(PagerQuery<BaseGoodsSkuQuery> pq) {
ResultBean rb = ResultBean.fireFail();
BaseGoodsSkuQuery query = pq.getParams();

5
yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsskuextend/BaseGoodsSkuExtendService.java

@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.base.biz.base.basegoodssku.BaseGoodsSku;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -41,6 +42,10 @@ public class BaseGoodsSkuExtendService extends MybatisBaseService<BaseGoodsSkuEx
@Autowired
BaseGoodsSpuDetailService baseGoodsSpuDetailService;
public BaseGoodsSkuExtend getOneBySKuSid(String skuSid) {
return baseMapper.selectOne(new QueryWrapper<BaseGoodsSkuExtend>().eq("goodsSkuSid", skuSid));
}
public ResultBean<PagerVo<BaseGoodsSkuExtendVo>> listPage(PagerQuery<BaseGoodsSkuExtendQuery> pq) {
ResultBean rb = ResultBean.fireFail();
BaseGoodsSkuExtendQuery query = pq.getParams();

47
yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsDetailsDto.java

@ -0,0 +1,47 @@
package com.yxt.base.biz.base.basegoodsspu;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yxt.common.core.dto.Dto;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/5/15 14:59
*/
@Data
public class BaseGoodsDetailsDto implements Dto {
private String sid;
private String userSid;
private String orgPath;
private String goodsName;//商品名称
private String goodsCode;//图号
private String goodsPY;//拼音缩写
private String barCode;//条形码
private String goodsUnitSid;//计量单位sid
private String goodsUnitName;//计量单位名称
private String goodsTypeSid;//商品分类sid
private String goodsTypeName;//商品分类sid
private String indexes;//规格
private String shelfLife;//保质期
private String brandSid;//品牌sid
private String brandName;//品牌
private String manufacturerSid;//厂家sid
private String manufacturerName;//厂家名称
private String isOriginalFactory;//是否原厂 1 是 2否
private String sortNo;//排序
private String skuRemarks;//备注
private String inventoryAlertUpperLimit;//库存上限
private String inventoryAlertLowerLimit;//库存下限
private String isLockingSalesPrice;//是否锁定销售价 1 是 2否
private String minimumSalesPrice;//销售底价
private String standardPurchasePrice;//三包价格
private String agencyPrice;//首保价格
private List<String> picPath = new ArrayList<>();//商品图片
}

46
yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsDetailsVo.java

@ -0,0 +1,46 @@
package com.yxt.base.biz.base.basegoodsspu;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/5/15 14:58
*/
@Data
public class BaseGoodsDetailsVo implements Vo {
private String sid;
private String userSid;
private String orgPath;
private String goodsName;//商品名称
private String goodsCode;//图号
private String goodsPY;//拼音缩写
private String barCode;//条形码
private String goodsUnitSid;//计量单位sid
private String goodsUnitName;//计量单位名称
private String goodsTypeSid;//商品分类sid
private String goodsTypeName;//商品分类sid
private String indexes;//规格
private String shelfLife;//保质期
private String brandSid;//品牌sid
private String brandName;//品牌
private String manufacturerSid;//厂家sid
private String manufacturerName;//厂家名称
private String isOriginalFactory;//是否原厂 1 是 2否
private String sortNo;//排序
private String skuRemarks;//备注
private String inventoryAlertUpperLimit;//库存上限
private String inventoryAlertLowerLimit;//库存下限
private String isLockingSalesPrice;//是否锁定销售价 1 是 2否
private String minimumSalesPrice;//销售底价
private String standardPurchasePrice;//三包价格
private String agencyPrice;//首保价格
private List<String> picPath = new ArrayList<>();//商品图片
}

4
yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpu.java

@ -12,7 +12,7 @@ public class BaseGoodsSpu extends BaseEntity {
private String goodsCode;//商品代码
private String barCode;//条形码
private String goodsName;//商品名称
private String subTitle;//商品名称
private String subTitle;//副标题
private String goodsPY;//拼音缩写
private String goodsShortName;//商品简称
private String goodsTypeSid;//商品分类sid
@ -30,4 +30,6 @@ public class BaseGoodsSpu extends BaseEntity {
private String isListed;//是否上架
private String useOrgSid;//使用组织sid
private String createOrgSid;//创建组织sid
private String useOrgName;//使用组织
private String createOrgName;//创建组织
}

24
yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpuListQuery.java

@ -0,0 +1,24 @@
package com.yxt.base.biz.base.basegoodsspu;
import com.yxt.common.core.query.Query;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/5/15 13:51
*/
@Data
public class BaseGoodsSpuListQuery implements Query {
private String orgPath; //组织全路径
private String useOrgName;//部门
private String createOrgName;//分公司
private String goodsName;//商品名称
private String goodsCode;//图号
private String goodsPY;//拼音缩写
private String goodsTypeName;//商品类别
private String brandName;//品牌
private String manufacturerName;//厂家
}

39
yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpuListVo.java

@ -0,0 +1,39 @@
package com.yxt.base.biz.base.basegoodsspu;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/5/15 13:32
*/
@Data
public class BaseGoodsSpuListVo implements Vo {
private String sid; //spuSid
private String goodsName;//商品名称
private String goodsCode;//图号
private String goodsPY;//拼音缩写
private String barCode;//条形码
private String goodsUnitName;//计量单位
private String goodsTypeName;//商品类别
private String indexes;//规格
private String shelfLife;//保质期
private String brandName;//品牌
private String manufacturerName;//厂家
private String isOriginalFactory;//原厂标志( 1 是 2否)
private String InventoryAlertUpperLimit;//库存上限
private String InventoryAlertLowerLimit;//库存下限
private String isLockingSalesPrice;//锁定销售价( 1 是 2否)
private String minimumSalesPrice;//销售底价
private String standardPurchasePrice;//三包价格
private String agencyPrice;//首保价格
private String picUrl;
private List<String> picPath = new ArrayList<>();//商品图片
}

4
yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpuMapper.java

@ -16,4 +16,8 @@ public interface BaseGoodsSpuMapper extends BaseMapper<BaseGoodsSpu> {
IPage<BaseGoodsSpuVo> listPage(IPage<BaseGoodsSpu> page, @Param(Constants.WRAPPER) QueryWrapper<BaseGoodsSpu> qw);
BaseGoodsSpuVo initialization(@Param("sid")String sid);
IPage<BaseGoodsSpuListVo> goodsListPage(IPage<BaseGoodsSpu> page,@Param(Constants.WRAPPER) QueryWrapper<BaseGoodsSpu> qw);
void delBySpuSid(@Param("sid") String sid);
}

58
yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpuMapper.xml

@ -1,6 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.base.biz.base.basegoodsspu.BaseGoodsSpuMapper">
<delete id="delBySpuSid">
DELETE
p,pd,k,e
FROM
base_goods_spu AS p
LEFT JOIN base_goods_spu_detail AS pd ON p.sid = pd.goodSpuSid
LEFT JOIN base_goods_sku AS k ON p.sid = k.goodsSpuSid
LEFT JOIN base_goods_sku_extend AS e ON k.sid = e.goodsSkuSid
WHERE
p.sid = #{sid}
</delete>
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
@ -16,12 +27,47 @@
</where>
</select>
<select id="initialization" resultType="com.yxt.base.biz.base.basegoodsspu.BaseGoodsSpuVo">
select
s.*,a.goodsTypeName as typeName,b.brandName as brandName,c.manufacturerName as manufacturerName
select s.*,
a.goodsTypeName as typeName,
b.brandName as brandName,
c.manufacturerName as manufacturerName
from base_goods_spu s
left join base_goods_type a on a.sid=s.goodsTypeSid
left join base_brand_info b on b.sid=s.brandSid
left join base_manufacturer c on c.sid=s.manufacturerSid
where s.sid=#{sid}
left join base_goods_type a on a.sid = s.goodsTypeSid
left join base_brand_info b on b.sid = s.brandSid
left join base_manufacturer c on c.sid = s.manufacturerSid
where s.sid = #{sid}
</select>
<select id="goodsListPage" resultType="com.yxt.base.biz.base.basegoodsspu.BaseGoodsSpuListVo">
SELECT
p.sid,
p.goodsName,
p.goodsCode,
p.goodsPY,
p.barCode,
p.goodsUnitName,
t.goodsTypeName,
k.indexes,
p.shelfLife,
b.brandName,
m.manufacturerName,
ke.isOriginalFactory,
ke.InventoryAlertUpperLimit,
ke.InventoryAlertLowerLimit,
ke.isLockingSalesPrice,
ke.minimumSalesPrice,
ke.standardPurchasePrice,
ke.agencyPrice,
ke.picUrl
FROM
base_goods_spu AS p
LEFT JOIN base_goods_sku as k ON p.sid = k.goodsSpuSid
LEFT JOIN base_goods_sku_extend as ke ON k.sid = ke.goodsSkuSid
LEFT JOIN base_goods_type as t ON p.goodsTypeSid = t.sid
LEFT JOIN base_brand_info as b ON p.brandSid = b.sid
LEFT JOIN base_manufacturer as m ON p.manufacturerSid = m.sid
<where>
${ew.sqlSegment}
</where>
ORDER BY p.sortNo asc
</select>
</mapper>

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

@ -4,13 +4,18 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.base.biz.base.basegoodssku.BaseGoodsSku;
import com.yxt.base.biz.base.basegoodssku.BaseGoodsSkuVo;
import com.yxt.base.biz.base.basegoodsskuextend.BaseGoodsSkuExtend;
import com.yxt.base.biz.base.basegoodsskuextend.BaseGoodsSkuExtendService;
import com.yxt.base.biz.base.basegoodsskuextend.BaseGoodsSkuExtendVo;
import com.yxt.base.biz.base.basegoodsskuextend.UrlsVo;
import com.yxt.base.biz.base.basegoodsspudetail.BaseGoodsSpuDetailVo;
import com.yxt.base.biz.base.basegoodsunit.BaseGoodsUnit;
import com.yxt.base.biz.base.basegoodsunit.BaseGoodsUnitService;
import com.yxt.base.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.base.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.base.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.base.utils.PinYinUtils;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
@ -32,10 +37,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
* @author wangpengfei
@ -53,14 +55,23 @@ public class BaseGoodsSpuService extends MybatisBaseService<BaseGoodsSpuMapper,
BaseGoodsUnitService baseGoodsUnitService;
@Autowired
BaseGoodsSkuExtendService baseGoodsSkuExtendService;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private BaseGoodsTypeService baseGoodsTypeService;
@Autowired
private BaseBrandInfoService baseBrandInfoService;
@Autowired
private BaseManufacturerService baseManufacturerService;
public ResultBean<PagerVo<BaseGoodsSpuVo>> listPage(PagerQuery<BaseGoodsSpuQuery> pq) {
ResultBean rb = ResultBean.fireFail();
BaseGoodsSpuQuery query = pq.getParams();
QueryWrapper<BaseGoodsSpu> qw = new QueryWrapper<>();
if(StringUtils.isNotBlank(query.getName())){
qw.like("goodsName",query.getName());
if (StringUtils.isNotBlank(query.getName())) {
qw.like("goodsName", query.getName());
}
IPage<BaseGoodsSpu> page = PagerUtil.queryToPage(pq);
IPage<BaseGoodsSpuVo> pagging = baseMapper.listPage(page, qw);
@ -76,18 +87,19 @@ public class BaseGoodsSpuService extends MybatisBaseService<BaseGoodsSpuMapper,
// }
return rb.success().setData(p);
}
@Transactional
public ResultBean<String> saveOrUpdate(BaseGoodsSpuDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = "";
BaseGoodsSpu spun= baseMapper.selectOne(new QueryWrapper<BaseGoodsSpu>().eq("sid",dto.getSid()));
BaseGoodsUnit baseGoodsUnit=baseGoodsUnitService.getOne(new QueryWrapper<BaseGoodsUnit>().eq("sid",dto.getGoodsUnitSid()));
if(null!=baseGoodsUnit){
BaseGoodsSpu spun = baseMapper.selectOne(new QueryWrapper<BaseGoodsSpu>().eq("sid", dto.getSid()));
BaseGoodsUnit baseGoodsUnit = baseGoodsUnitService.getOne(new QueryWrapper<BaseGoodsUnit>().eq("sid", dto.getGoodsUnitSid()));
if (null != baseGoodsUnit) {
dto.setGoodsUnitName(baseGoodsUnit.getUnitName());
}
if (spun!=null) {
if(!spun.getSid().equals(dto.getSid())){
if (spun != null) {
if (!spun.getSid().equals(dto.getSid())) {
return rb.setMsg("商品编码重复");
}
sid = dto.getSid();
@ -95,19 +107,20 @@ public class BaseGoodsSpuService extends MybatisBaseService<BaseGoodsSpuMapper,
BeanUtil.copyProperties(dto, wmsGoods);
wmsGoods.setModifyTime(new Date());
// wmsGoods.setGoodsPY(PinYinUtils.getPinYinName(wmsGoods.getGoodsName()));;
wmsGoods.setGoodsPY(PinYinUtils.sx(wmsGoods.getGoodsName()));;
wmsGoods.setGoodsPY(PinYinUtils.sx(wmsGoods.getGoodsName()));
;
baseMapper.updateById(wmsGoods);
//spu详情
dto.getBaseGoodsSpuDetail().setGoodSpuSid(wmsGoods.getSid());
baseGoodsSpuDetailService.saveOrUpdate(dto.getBaseGoodsSpuDetail());
//商品sku
dto.getBaseGoodsSkus().forEach(s->{
dto.getBaseGoodsSkus().forEach(s -> {
s.setGoodsSpuSid(wmsGoods.getSid());
});
baseGoodsSkuService.saveOrUpdate(dto.getBaseGoodsSkus());
} else {
BaseGoodsSpu spu=baseMapper.selectOne(new QueryWrapper<BaseGoodsSpu>().eq("goodsCode",dto.getGoodsCode()));
if(spu!=null){
BaseGoodsSpu spu = baseMapper.selectOne(new QueryWrapper<BaseGoodsSpu>().eq("goodsCode", dto.getGoodsCode()));
if (spu != null) {
return rb.setMsg("商品编码重复");
}
BaseGoodsSpu wmsGoods = new BaseGoodsSpu();
@ -120,7 +133,7 @@ public class BaseGoodsSpuService extends MybatisBaseService<BaseGoodsSpuMapper,
dto.getBaseGoodsSpuDetail().setGoodSpuSid(wmsGoods.getSid());
baseGoodsSpuDetailService.saveOrUpdate(dto.getBaseGoodsSpuDetail());
//商品sku
dto.getBaseGoodsSkus().forEach(s->{
dto.getBaseGoodsSkus().forEach(s -> {
s.setGoodsSpuSid(wmsGoods.getSid());
});
baseGoodsSkuService.saveOrUpdate(dto.getBaseGoodsSkus());
@ -132,16 +145,17 @@ public class BaseGoodsSpuService extends MybatisBaseService<BaseGoodsSpuMapper,
public ResultBean<BaseGoodsSpuVo> initialization(String sid) {
ResultBean rb = ResultBean.fireFail();
BaseGoodsSpuVo vo = baseMapper.initialization(sid);
BaseGoodsSpuDetailVo vo1=baseGoodsSpuDetailService.getSpuDetailsBySpuSid(vo.getSid()).getData();
BaseGoodsSpuDetailVo vo1 = baseGoodsSpuDetailService.getSpuDetailsBySpuSid(vo.getSid()).getData();
vo.setBaseGoodsSpuDetail(vo1);
List<BaseGoodsSkuVo> vos=baseGoodsSkuService.getSkusBySpuSid(vo.getSid()).getData();
List<BaseGoodsSkuVo> vos = baseGoodsSkuService.getSkusBySpuSid(vo.getSid()).getData();
for (BaseGoodsSkuVo baseGoodsSkuVo : vos) {
List<UrlsVo> ur=new ArrayList<>();
BaseGoodsSkuExtendVo vo2=baseGoodsSkuExtendService.getExtendBySkuSid(baseGoodsSkuVo.getSid()).getData();
if(StringUtils.isNotBlank(vo2.getPicUrl())){
List<UrlsVo> ur = new ArrayList<>();
BaseGoodsSkuExtendVo vo2 = baseGoodsSkuExtendService.getExtendBySkuSid(baseGoodsSkuVo.getSid()).getData();
if (StringUtils.isNotBlank(vo2.getPicUrl())) {
for (String url : vo2.getPicUrl().split(",")) {
url=fileUploadComponent.getUrlPrefix()+url;
UrlsVo vo3=new UrlsVo();vo3.setUrl(url);
url = fileUploadComponent.getUrlPrefix() + url;
UrlsVo vo3 = new UrlsVo();
vo3.setUrl(url);
ur.add(vo3);
}
}
@ -153,7 +167,6 @@ public class BaseGoodsSpuService extends MybatisBaseService<BaseGoodsSpuMapper,
}
public ResultBean delete(String sid) {
ResultBean rb = ResultBean.fireFail();
BaseGoodsSpu wmsGoods = fetchBySid(sid);
@ -163,7 +176,7 @@ public class BaseGoodsSpuService extends MybatisBaseService<BaseGoodsSpuMapper,
return rb.success();
}
public ResultBean updateIsEnable(String sid,String isEnable) {
public ResultBean updateIsEnable(String sid, String isEnable) {
ResultBean rb = ResultBean.fireFail();
BaseGoodsSpu wmsGoods = fetchBySid(sid);
if (null != wmsGoods) {
@ -172,4 +185,303 @@ public class BaseGoodsSpuService extends MybatisBaseService<BaseGoodsSpuMapper,
}
return rb.success().setMsg("成功");
}
public ResultBean<PagerVo<BaseGoodsSpuListVo>> goodsListPage(PagerQuery<BaseGoodsSpuListQuery> pq) {
ResultBean rb = ResultBean.fireFail();
BaseGoodsSpuListQuery query = pq.getParams();
QueryWrapper<BaseGoodsSpu> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getOrgPath())) {
String createOrgSid = sysStaffOrgFeign.getOrgSidByPath(query.getOrgPath()).getData();
qw.eq("p.createOrgSid", createOrgSid);
}
if (StringUtils.isNotBlank(query.getGoodsPY())) {
qw.like("p.goodsPY", query.getGoodsPY());
}
if (StringUtils.isNotBlank(query.getCreateOrgName())) {
qw.like("p.createOrgName", query.getCreateOrgName());
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("p.useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getGoodsName())) {
qw.like("p.goodsName", query.getGoodsName());
}
if (StringUtils.isNotBlank(query.getGoodsCode())) {
qw.like("p.goodsCode", query.getGoodsCode());
}
if (StringUtils.isNotBlank(query.getGoodsTypeName())) {
qw.like("t.goodsTypeName", query.getGoodsTypeName());
}
if (StringUtils.isNotBlank(query.getBrandName())) {
qw.like("b.brandName", query.getBrandName());
}
if (StringUtils.isNotBlank(query.getManufacturerName())) {
qw.like("m.manufacturerName", query.getManufacturerName());
}
IPage<BaseGoodsSpu> page = PagerUtil.queryToPage(pq);
IPage<BaseGoodsSpuListVo> pagging = baseMapper.goodsListPage(page, qw);
PagerVo<BaseGoodsSpuListVo> p = PagerUtil.pageToVo(pagging, null);
List<BaseGoodsSpuListVo> records = pagging.getRecords();
records.removeAll(Collections.singleton(null));
if (!records.isEmpty()) {
String urlPrefix = fileUploadComponent.getUrlPrefix();
for (BaseGoodsSpuListVo record : records) {
if (StringUtils.isNotBlank(record.getPicUrl())) {
List<String> files = new ArrayList<>();
String picUrl = record.getPicUrl();
String[] split = picUrl.split(",");
for (String s : split) {
files.add(urlPrefix + s);
}
record.setPicPath(files);
}
}
}
return rb.success().setData(p);
}
@Transactional
public ResultBean<String> saveOrUpdateGoods(BaseGoodsDetailsDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = "";
String orgPath = "";
if (StringUtils.isNotBlank(dto.getOrgPath())) {
orgPath = dto.getOrgPath();
}
BaseGoodsSpu spun = baseMapper.selectOne(new QueryWrapper<BaseGoodsSpu>().eq("sid", dto.getSid()));
if (spun != null) {
if (!spun.getSid().equals(dto.getSid())) {
return rb.setMsg("商品编码重复");
}
sid = dto.getSid();
BaseGoodsSpu wmsGoods = fetchBySid(dto.getSid());
BeanUtil.copyProperties(dto, wmsGoods, "id", "sid");
wmsGoods.setModifyTime(new Date());
wmsGoods.setGoodsPY(PinYinUtils.sx(wmsGoods.getGoodsName()));
baseMapper.updateById(wmsGoods);
//商品sku
BaseGoodsSku skuUpdate = baseGoodsSkuService.getOneBySpuSid(sid);
if (null != skuUpdate) {
if (StringUtils.isNotBlank(dto.getGoodsName())) {
skuUpdate.setTitle(dto.getGoodsName());
}
if (StringUtils.isNotBlank(dto.getGoodsCode())) {
skuUpdate.setGoodsSkuCode(dto.getGoodsCode());
}
if (StringUtils.isNotBlank(dto.getIndexes())) {
skuUpdate.setIndexes(dto.getIndexes());
}
skuUpdate.setModifyTime(new Date());
baseGoodsSkuService.updateById(skuUpdate);
BaseGoodsSkuExtend skuExtendUpdate = baseGoodsSkuExtendService.getOneBySKuSid(skuUpdate.getSid());
if (null != skuExtendUpdate) {
BeanUtil.copyProperties(dto, skuExtendUpdate, "id", "sid");
if (StringUtils.isNotBlank(dto.getSkuRemarks())) {
skuExtendUpdate.setRemarks(dto.getSkuRemarks());
}
List<String> picPath = dto.getPicPath();
if (!picPath.isEmpty()) {
StringBuilder sb = new StringBuilder();
String urlPrefix = fileUploadComponent.getUrlPrefix();
for (String filePath : picPath) {
String path = filePath.substring(urlPrefix.length());
sb.append(path).append(",");
}
sb.delete(sb.length() - 1, sb.length());
skuExtendUpdate.setPicUrl(sb.toString());
}
baseGoodsSkuExtendService.updateById(skuExtendUpdate);
} else {
BaseGoodsSkuExtend skuExtend = new BaseGoodsSkuExtend();
BeanUtil.copyProperties(dto, skuExtend, "id", "sid");
skuExtend.setGoodsSkuSid(skuUpdate.getSid());
if (StringUtils.isNotBlank(dto.getSkuRemarks())) {
skuExtend.setRemarks(dto.getSkuRemarks());
}
List<String> picPath = dto.getPicPath();
if (!picPath.isEmpty()) {
StringBuilder sb = new StringBuilder();
String urlPrefix = fileUploadComponent.getUrlPrefix();
for (String filePath : picPath) {
String path = filePath.substring(urlPrefix.length());
sb.append(path).append(",");
}
sb.delete(sb.length() - 1, sb.length());
skuExtend.setPicUrl(sb.toString());
}
baseGoodsSkuExtendService.insert(skuExtend);
}
} else {
//商品sku
BaseGoodsSku sku = new BaseGoodsSku();
sku.setGoodsSpuSid(sid);
if (StringUtils.isNotBlank(dto.getGoodsName())) {
sku.setTitle(dto.getGoodsName());
}
if (StringUtils.isNotBlank(dto.getGoodsCode())) {
sku.setGoodsSkuCode(dto.getGoodsCode());
}
if (StringUtils.isNotBlank(dto.getIndexes())) {
sku.setIndexes(dto.getIndexes());
}
baseGoodsSkuService.insert(sku);
//商品sku_extend
BaseGoodsSkuExtend skuExtend = new BaseGoodsSkuExtend();
BeanUtil.copyProperties(dto, skuExtend, "id", "sid");
skuExtend.setGoodsSkuSid(sku.getSid());
if (StringUtils.isNotBlank(dto.getSkuRemarks())) {
skuExtend.setRemarks(dto.getSkuRemarks());
}
List<String> picPath = dto.getPicPath();
if (!picPath.isEmpty()) {
StringBuilder sb = new StringBuilder();
String urlPrefix = fileUploadComponent.getUrlPrefix();
for (String filePath : picPath) {
String path = filePath.substring(urlPrefix.length());
sb.append(path).append(",");
}
sb.delete(sb.length() - 1, sb.length());
skuExtend.setPicUrl(sb.toString());
}
baseGoodsSkuExtendService.insert(skuExtend);
}
} else {
BaseGoodsSpu spu = baseMapper.selectOne(new QueryWrapper<BaseGoodsSpu>().eq("goodsCode", dto.getGoodsCode()));
if (spu != null) {
return rb.setMsg("商品编码重复");
}
BaseGoodsSpu wmsGoods = new BaseGoodsSpu();
sid = wmsGoods.getSid();
BeanUtil.copyProperties(dto, wmsGoods, "id", "sid");
wmsGoods.setCreateBySid(dto.getUserSid());
String deptName = "";
String deptSid = "";
String createOrgSid = "";
if (StringUtils.isNotBlank(orgPath)) {
List<String> split = Arrays.asList(orgPath.split("/"));
if (split.size() > 1) {
//获取本级sid获取本级部门信息
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData();
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
deptName = sysOrganization.getName() + "/" + sysOrganization1.getName();
deptName = sysOrganization1.getName();
deptSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
deptName = sysOrganization.getName();
deptName = sysOrganization.getName();
deptSid = sysOrganization.getSid();
}
wmsGoods.setUseOrgName(deptName);
wmsGoods.setUseOrgSid(deptSid);
createOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
//创建组织使用组织
ResultBean<SysOrganizationVo> organizationResultBean = sysOrganizationFeign.fetchBySid(createOrgSid);
if (organizationResultBean.getData() != null) {
wmsGoods.setCreateOrgName(organizationResultBean.getData().getName());
wmsGoods.setCreateOrgSid(createOrgSid);
}
}
wmsGoods.setGoodsPY(PinYinUtils.sx(wmsGoods.getGoodsName()));
baseMapper.insert(wmsGoods);
//商品sku
BaseGoodsSku sku = new BaseGoodsSku();
sku.setGoodsSpuSid(sid);
if (StringUtils.isNotBlank(dto.getGoodsName())) {
sku.setTitle(dto.getGoodsName());
}
if (StringUtils.isNotBlank(dto.getGoodsCode())) {
sku.setGoodsSkuCode(dto.getGoodsCode());
}
if (StringUtils.isNotBlank(dto.getIndexes())) {
sku.setIndexes(dto.getIndexes());
}
baseGoodsSkuService.insert(sku);
//商品sku_extend
BaseGoodsSkuExtend skuExtend = new BaseGoodsSkuExtend();
BeanUtil.copyProperties(dto, skuExtend, "id", "sid");
skuExtend.setGoodsSkuSid(sku.getSid());
if (StringUtils.isNotBlank(dto.getSkuRemarks())) {
skuExtend.setRemarks(dto.getSkuRemarks());
}
List<String> picPath = dto.getPicPath();
if (!picPath.isEmpty()) {
StringBuilder sb = new StringBuilder();
String urlPrefix = fileUploadComponent.getUrlPrefix();
for (String filePath : picPath) {
String path = filePath.substring(urlPrefix.length());
sb.append(path).append(",");
}
sb.delete(sb.length() - 1, sb.length());
skuExtend.setPicUrl(sb.toString());
}
baseGoodsSkuExtendService.insert(skuExtend);
}
return rb.success().setData(sid);
}
public ResultBean<BaseGoodsDetailsVo> goodsDetails(String sid) {
ResultBean rb = ResultBean.fireFail();
BaseGoodsDetailsVo vo = new BaseGoodsDetailsVo();
BaseGoodsSpu baseGoodsSpu = fetchBySid(sid);
if (null != baseGoodsSpu) {
BeanUtil.copyProperties(baseGoodsSpu, vo);
if (StringUtils.isNotBlank(baseGoodsSpu.getGoodsTypeSid())) {
BaseGoodsType baseGoodsType = baseGoodsTypeService.fetchBySid(baseGoodsSpu.getGoodsTypeSid());
if (null != baseGoodsType) {
if (StringUtils.isNotBlank(baseGoodsType.getGoodsTypeName())) {
vo.setGoodsTypeName(baseGoodsType.getGoodsTypeName());
}
}
}
if (StringUtils.isNotBlank(baseGoodsSpu.getBrandSid())) {
BaseBrandInfo baseBrandInfo = baseBrandInfoService.fetchBySid(baseGoodsSpu.getBrandSid());
if (null != baseBrandInfo) {
if (StringUtils.isNotBlank(baseBrandInfo.getBrandName())) {
vo.setBrandName(baseBrandInfo.getBrandName());
}
}
}
if (StringUtils.isNotBlank(baseGoodsSpu.getManufacturerSid())) {
BaseManufacturer manufacturer = baseManufacturerService.fetchBySid(baseGoodsSpu.getManufacturerSid());
if (null != manufacturer) {
if (StringUtils.isNotBlank(manufacturer.getManufacturerName())) {
vo.setManufacturerName(manufacturer.getManufacturerName());
}
}
}
}
BaseGoodsSku sku = baseGoodsSkuService.getOneBySpuSid(sid);
if (null != sku) {
if (StringUtils.isNotBlank(sku.getIndexes())) {
vo.setIndexes(sku.getIndexes());
}
BaseGoodsSkuExtend skuExtend = baseGoodsSkuExtendService.getOneBySKuSid(sku.getSid());
if (null != skuExtend) {
BeanUtil.copyProperties(skuExtend, vo, "sid");
if (StringUtils.isNotBlank(skuExtend.getRemarks())) {
vo.setSkuRemarks(skuExtend.getRemarks());
}
String urlPrefix = fileUploadComponent.getUrlPrefix();
if (StringUtils.isNotBlank(skuExtend.getPicUrl())) {
List<String> files = new ArrayList<>();
String picUrl = skuExtend.getPicUrl();
String[] split = picUrl.split(",");
for (String s : split) {
files.add(urlPrefix + s);
}
vo.setPicPath(files);
}
}
}
return rb.success().setData(vo);
}
public ResultBean deleteBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
for (String sid : sids) {
baseMapper.delBySpuSid(sid);
}
return rb.success();
}
}

Loading…
Cancel
Save