parent
32f44fd483
commit
c094c502cf
@ -0,0 +1,35 @@ |
||||
package com.dxhy.order.consumer.dao; |
||||
|
||||
import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeEntity; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Description 集团物料库 集团物料库和 |
||||
* @Author 巩权林 |
||||
* @Date 2023/3/9 10:36 |
||||
**/ |
||||
public interface GroupCommodityCodeMapper { |
||||
|
||||
/** |
||||
* 查询集团物料库 |
||||
* |
||||
* @param commodityCodeEntity |
||||
* @return |
||||
*/ |
||||
List<CommodityCodeEntity> queryGroupCommodityCodeList(CommodityCodeEntity commodityCodeEntity); |
||||
|
||||
|
||||
/** |
||||
* 根据物料编码和销方税号查询物料信息 |
||||
* |
||||
* @param zxbm |
||||
* @param xhfNsrsbh |
||||
* @return |
||||
*/ |
||||
CommodityCodeEntity queryCommodityCodeByZxbmAndXhfNsrsbh(@Param("zxbm") String zxbm, @Param("xhfNsrsbh") String xhfNsrsbh); |
||||
|
||||
|
||||
int insertCommodityCode(CommodityCodeEntity entity); |
||||
} |
@ -0,0 +1,51 @@ |
||||
package com.dxhy.order.consumer.modules.commodity.controller; |
||||
|
||||
import cn.hutool.json.JSONObject; |
||||
import com.dxhy.order.consumer.modules.commodity.domain.dto.QueryGroupCommodityDTO; |
||||
import com.dxhy.order.consumer.modules.commodity.domain.dto.QuoteGroupCommodityDTO; |
||||
import com.dxhy.order.consumer.modules.commodity.service.IGroupCommodityCodeService; |
||||
import com.dxhy.order.model.PageUtils; |
||||
import com.dxhy.order.model.R; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.validation.annotation.Validated; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @Description 集团物料库 |
||||
* @Author 巩权林 |
||||
* @Date 2023/3/9 08:19 |
||||
**/ |
||||
@RequestMapping(value = "/groupCommodity") |
||||
@RestController |
||||
@Slf4j |
||||
public class GroupCommodityCodeController { |
||||
|
||||
private final static String LOGGER_MSG = "(集团物料库)"; |
||||
|
||||
@Autowired |
||||
private IGroupCommodityCodeService groupCommodityCodeService; |
||||
|
||||
@GetMapping("/list") |
||||
public R list(QueryGroupCommodityDTO queryGroupCommodityDTO) { |
||||
try { |
||||
PageUtils pageUtil = groupCommodityCodeService.queryGroupCommodityCodeList(queryGroupCommodityDTO); |
||||
return R.ok().put("page", pageUtil); |
||||
} catch (NumberFormatException e) { |
||||
log.error("{},分页参数类型转换异常:{}", LOGGER_MSG, e.getMessage()); |
||||
return R.error("商品信息列表查询异常"); |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* 物料引用 |
||||
* |
||||
* @return |
||||
*/ |
||||
@PostMapping("/quote") |
||||
public R quote(@RequestBody @Validated QuoteGroupCommodityDTO dto) { |
||||
return groupCommodityCodeService.quoteGroupCommodityCode(dto); |
||||
} |
||||
} |
@ -1,21 +0,0 @@ |
||||
package com.dxhy.order.consumer.modules.commodity.controller; |
||||
|
||||
import com.dxhy.order.model.R; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* @Description 集团物料库 |
||||
* @Author 巩权林 |
||||
* @Date 2023/3/9 08:19 |
||||
**/ |
||||
@RequestMapping(value = "/groupCommodity") |
||||
@RestController |
||||
public class GroupCommodityController { |
||||
|
||||
@PostMapping("/list") |
||||
public R list() { |
||||
|
||||
} |
||||
} |
@ -0,0 +1,30 @@ |
||||
package com.dxhy.order.consumer.modules.commodity.domain.dto; |
||||
|
||||
import lombok.Data; |
||||
|
||||
/** |
||||
* @Description 带分页的基础dto |
||||
* @Author 巩权林 |
||||
* @Date 2023/3/9 10:09 |
||||
**/ |
||||
public class PageBaseDTO { |
||||
|
||||
private Integer currPage; |
||||
private Integer pageSize; |
||||
|
||||
public Integer getCurrPage() { |
||||
return currPage == null ? 0 : currPage; |
||||
} |
||||
|
||||
public void setCurrPage(Integer currPage) { |
||||
this.currPage = currPage; |
||||
} |
||||
|
||||
public Integer getPageSize() { |
||||
return pageSize == null ? 0 : pageSize; |
||||
} |
||||
|
||||
public void setPageSize(Integer pageSize) { |
||||
this.pageSize = pageSize; |
||||
} |
||||
} |
@ -0,0 +1,23 @@ |
||||
package com.dxhy.order.consumer.modules.commodity.domain.dto; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import javax.validation.constraints.NotBlank; |
||||
|
||||
/** |
||||
* @Description 引用物料 |
||||
* @Author 巩权林 |
||||
* @Date 2023/3/9 11:01 |
||||
**/ |
||||
@Data |
||||
public class QuoteGroupCommodityDTO { |
||||
|
||||
/** |
||||
* 自行编码 |
||||
*/ |
||||
@NotBlank(message = "物料编码不能为空!") |
||||
private String zxbm; |
||||
|
||||
@NotBlank(message = "接收引用物料的销方纳税人识别号不能为空!") |
||||
private String xhfNsrsbh; |
||||
} |
@ -0,0 +1,20 @@ |
||||
package com.dxhy.order.consumer.modules.commodity.service; |
||||
|
||||
import com.dxhy.order.consumer.modules.commodity.domain.dto.QueryGroupCommodityDTO; |
||||
import com.dxhy.order.consumer.modules.commodity.domain.dto.QuoteGroupCommodityDTO; |
||||
import com.dxhy.order.model.PageUtils; |
||||
import com.dxhy.order.model.R; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @Description 集团物料库 |
||||
* @Author 巩权林 |
||||
* @Date 2023/3/9 10:06 |
||||
**/ |
||||
public interface IGroupCommodityCodeService { |
||||
|
||||
PageUtils queryGroupCommodityCodeList(QueryGroupCommodityDTO queryGroupCommodityDTO); |
||||
|
||||
R quoteGroupCommodityCode(QuoteGroupCommodityDTO quoteGroupCommodityDTO); |
||||
} |
@ -0,0 +1,116 @@ |
||||
package com.dxhy.order.consumer.modules.commodity.service.impl; |
||||
|
||||
import com.dxhy.order.baseservice.module.base.service.BaseService; |
||||
import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeEntity; |
||||
import com.dxhy.order.constant.ConfigureConstant; |
||||
import com.dxhy.order.consumer.dao.GroupCommodityCodeMapper; |
||||
import com.dxhy.order.consumer.modules.commodity.domain.dto.QueryGroupCommodityDTO; |
||||
import com.dxhy.order.consumer.modules.commodity.domain.dto.QuoteGroupCommodityDTO; |
||||
import com.dxhy.order.consumer.modules.commodity.service.IGroupCommodityCodeService; |
||||
import com.dxhy.order.model.PageUtils; |
||||
import com.dxhy.order.model.R; |
||||
import com.dxhy.order.utils.CommonUtils; |
||||
import com.github.pagehelper.PageHelper; |
||||
import com.github.pagehelper.PageInfo; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.apache.commons.beanutils.BeanUtils; |
||||
import org.apache.commons.lang3.StringUtils; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import javax.annotation.Resource; |
||||
import java.lang.reflect.InvocationTargetException; |
||||
import java.util.List; |
||||
import java.util.stream.Collectors; |
||||
|
||||
/** |
||||
* @Description |
||||
* @Author 巩权林 |
||||
* @Date 2023/3/9 10:06 |
||||
**/ |
||||
@Service |
||||
@Slf4j |
||||
public class GroupCommodityCodeServiceImpl implements IGroupCommodityCodeService { |
||||
|
||||
private final static String LOGGER_MSG = "(集团物料库)"; |
||||
|
||||
@Autowired |
||||
private GroupCommodityCodeMapper groupCommodityMapper; |
||||
|
||||
@Resource |
||||
private BaseService baseService; |
||||
|
||||
/** |
||||
* 查询集团物料库 |
||||
* |
||||
* @param queryGroupCommodityDTO |
||||
* @param shList |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public PageUtils queryGroupCommodityCodeList(QueryGroupCommodityDTO queryGroupCommodityDTO) { |
||||
int pageSize = queryGroupCommodityDTO.getPageSize(); |
||||
int currPage = queryGroupCommodityDTO.getCurrPage(); |
||||
PageHelper.startPage(currPage, pageSize); |
||||
CommodityCodeEntity query = new CommodityCodeEntity(); |
||||
query.setWlflbm(queryGroupCommodityDTO.getWlflbm()); |
||||
query.setWlflmc(queryGroupCommodityDTO.getWlflmc()); |
||||
query.setZxbm(queryGroupCommodityDTO.getZxbm()); |
||||
query.setXmmc(queryGroupCommodityDTO.getXmmc()); |
||||
List<CommodityCodeEntity> result = groupCommodityMapper.queryGroupCommodityCodeList(query); |
||||
result = result.stream().map(i -> { |
||||
if (StringUtils.isNotEmpty(i.getSl())) { |
||||
i.setSl(CommonUtils.formatSl(i.getSl())); |
||||
} |
||||
return i; |
||||
}).collect(Collectors.toList()); |
||||
PageInfo<CommodityCodeEntity> pageInfo = new PageInfo<>(result); |
||||
return new PageUtils(pageInfo.getList(), (int) pageInfo.getTotal(), pageInfo.getPageSize(), pageInfo.getPageNum()); |
||||
} |
||||
|
||||
/** |
||||
* 引用物料 |
||||
* |
||||
* @param quoteGroupCommodityDTO |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public R quoteGroupCommodityCode(QuoteGroupCommodityDTO quoteGroupCommodityDTO) { |
||||
// 判断销方税号是否合法,因为某些情况下可能会传递list过来
|
||||
if (StringUtils.isBlank(quoteGroupCommodityDTO.getXhfNsrsbh())) { |
||||
return R.error(ConfigureConstant.STRING_0000, "销方税号不能为空"); |
||||
} |
||||
|
||||
if (quoteGroupCommodityDTO.getXhfNsrsbh().contains(ConfigureConstant.STRING_CHARSET_1)) { |
||||
return R.error(ConfigureConstant.STRING_0000, "销方税号非法"); |
||||
} |
||||
|
||||
CommodityCodeEntity commodityCodeEntity = groupCommodityMapper.queryCommodityCodeByZxbmAndXhfNsrsbh(quoteGroupCommodityDTO.getZxbm(), quoteGroupCommodityDTO.getXhfNsrsbh()); |
||||
// 根据文档4.2.1.2 (6) 若物料编码重复时,引用后不对子公司物料进行更新
|
||||
if (commodityCodeEntity != null) { |
||||
return R.ok(); |
||||
} |
||||
|
||||
commodityCodeEntity = groupCommodityMapper.queryCommodityCodeByZxbmAndXhfNsrsbh(quoteGroupCommodityDTO.getZxbm(), "-1"); |
||||
if (commodityCodeEntity == null) { |
||||
return R.error("引用失败,集团物料不存在"); |
||||
} |
||||
|
||||
CommodityCodeEntity newCommodityCodeEntity = new CommodityCodeEntity(); |
||||
try { |
||||
BeanUtils.copyProperties(newCommodityCodeEntity, commodityCodeEntity); |
||||
} catch (IllegalAccessException e) { |
||||
log.error("{}引用物料异常", LOGGER_MSG, e); |
||||
} catch (InvocationTargetException e) { |
||||
log.error("{}引用物料异常", LOGGER_MSG, e); |
||||
} |
||||
|
||||
newCommodityCodeEntity.setId(baseService.getGenerateShotKey()); |
||||
newCommodityCodeEntity.setXhfNsrsbh(quoteGroupCommodityDTO.getXhfNsrsbh()); |
||||
if (groupCommodityMapper.insertCommodityCode(newCommodityCodeEntity) > 0) { |
||||
return R.ok(); |
||||
} else { |
||||
return R.error("引用失败"); |
||||
} |
||||
} |
||||
} |
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue