@ -21,15 +21,33 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.core.metadata.IPage ;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils ;
import com.baomidou.mybatisplus.core.toolkit.Wrappers ;
import com.logpm.basic.entity.BasicPrintTemplateEntity ;
import com.logpm.basic.feign.IBasicPrintTemplateClient ;
import com.logpm.distribution.entity.DisStockListDetailEntity ;
import com.logpm.distribution.entity.DistributionReservationStocklistEntity ;
import com.logpm.distribution.entity.DistributionStockListEntity ;
import com.logpm.distribution.excel.DisStockListDetailExcel ;
import com.logpm.distribution.mapper.DisStockListDetailMapper ;
import com.logpm.distribution.service.IDisStockListDetailService ;
import com.logpm.distribution.service.IDistributionReservationStocklistService ;
import com.logpm.distribution.service.IDistributionStockListService ;
import com.logpm.distribution.vo.DisStockListDetailVO ;
import com.logpm.distribution.vo.DisStockListVO ;
import com.logpm.distribution.vo.DistributionStockArticleQRCodeVO ;
import com.logpm.distribution.vo.OrderPackgeCodeDataVO ;
import lombok.AllArgsConstructor ;
import org.springblade.common.constant.printTemplate.PrintTemplateStatusConstant ;
import org.springblade.common.utils.QRCodeUtil ;
import org.springblade.common.utils.TemplateUtil ;
import org.springblade.core.log.exception.ServiceException ;
import org.springblade.core.mp.base.BaseServiceImpl ;
import org.springblade.core.mp.support.Condition ;
import org.springblade.core.tool.utils.Func ;
import org.springframework.stereotype.Service ;
import java.util.ArrayList ;
import java.util.List ;
import java.util.Map ;
@ -40,8 +58,14 @@ import java.util.Map;
* @since 2023 - 09 - 04
* /
@Service
@AllArgsConstructor
public class DisStockListDetailServiceImpl extends BaseServiceImpl < DisStockListDetailMapper , DisStockListDetailEntity > implements IDisStockListDetailService {
private final IDistributionStockListService distributionStockListService ;
private final IDistributionReservationStocklistService distributionReservationStocklistService ;
private final IBasicPrintTemplateClient basicPrintTemplateClient ;
@Override
public IPage < DisStockListDetailVO > selectDisStockListDetailPage ( IPage < DisStockListDetailVO > page , DisStockListDetailVO disStockListDetail ) {
return page . setRecords ( baseMapper . selectDisStockListDetailPage ( page , disStockListDetail ) ) ;
@ -63,8 +87,9 @@ public class DisStockListDetailServiceImpl extends BaseServiceImpl<DisStockListD
* @return
* /
@Override
public List < DisStockListDetailEntity > pageDisStockList ( Map < String , Object > disStockListDetail ) {
public List < DisStockListVO > pageDisStockList ( Map < String , Object > disStockListDetail ) {
// DisStockListDetailEntity disStockListDetailEntity = JSONObject.parseObject(JSONObject.toJSONString(disStockListDetail), DisStockListDetailEntity.class);
List < DisStockListVO > list = new ArrayList < > ( ) ;
Object stockListId = disStockListDetail . get ( "stockListId" ) ;
Object reservationId = disStockListDetail . get ( "reservationId" ) ;
disStockListDetail . remove ( "stockListId" ) ;
@ -72,8 +97,141 @@ public class DisStockListDetailServiceImpl extends BaseServiceImpl<DisStockListD
QueryWrapper < DisStockListDetailEntity > queryWrapper = Condition . getQueryWrapper ( disStockListDetail , DisStockListDetailEntity . class ) ;
queryWrapper . eq ( ObjectUtil . isNotNull ( stockListId ) , "stock_list_id" , stockListId ) ;
queryWrapper . eq ( ObjectUtil . isNotNull ( reservationId ) , "reservation_id" , reservationId ) ;
queryWrapper . in ( "stock_package_status" , "1,3" ) ;
return baseMapper . selectList ( queryWrapper ) ;
queryWrapper . apply ( "stock_package_status in (1,3)" ) ;
List < DisStockListDetailEntity > disStockListDetailEntities = baseMapper . selectList ( queryWrapper ) ;
disStockListDetailEntities . forEach ( dis - > {
DistributionStockListEntity byId = distributionStockListService . getById ( dis . getStockListId ( ) ) ;
DisStockListVO disStockListVO = new DisStockListVO ( ) ;
disStockListVO . setId ( dis . getId ( ) ) ;
disStockListVO . setStockPackageCode ( dis . getStockPackageCode ( ) ) ;
disStockListVO . setSku ( byId . getSku ( ) ) ;
disStockListVO . setCargoUnit ( byId . getCargoUnit ( ) ) ;
disStockListVO . setOrderCode ( byId . getOrderCode ( ) ) ;
disStockListVO . setDescriptionGoods ( byId . getDescriptionGoods ( ) ) ;
disStockListVO . setBrandName ( byId . getBrandName ( ) ) ;
disStockListVO . setStockListId ( disStockListVO . getStockListId ( ) ) ;
disStockListVO . setReservationId ( disStockListVO . getReservationId ( ) ) ;
list . add ( disStockListVO ) ;
}
) ;
return list ;
}
/ * *
* 打印模板
*
* @param disStockListDetail
* @return
* /
@Override
public OrderPackgeCodeDataVO getPrintDetail ( Map < String , Object > disStockListDetail ) throws Exception {
OrderPackgeCodeDataVO orderPackgeCodeDataVO = new OrderPackgeCodeDataVO ( ) ;
List < Map > data = new ArrayList < > ( ) ;
//查询模板
BasicPrintTemplateEntity template = basicPrintTemplateClient . getPrintTemplate ( PrintTemplateStatusConstant . daiqueren_11 . getValue ( ) ) ;
if ( org . springblade . core . tool . utils . ObjectUtil . isEmpty ( template ) ) {
throw new ServiceException ( "模板内容未找到" ) ;
}
String html = TemplateUtil . getTemplateByUrl ( template . getTemplateUrl ( ) ) ;
orderPackgeCodeDataVO . setTemplateHtml ( html ) ;
orderPackgeCodeDataVO . setTemplateId ( template . getId ( ) ) ;
String type = ( String ) disStockListDetail . get ( "type" ) ;
switch ( type ) {
case "1" :
String qrCode = ( String ) disStockListDetail . get ( "stockPackageCode" ) ;
if ( Func . isBlank ( qrCode ) ) {
log . error ( "参数异常:+{" + qrCode + "}" ) ;
throw new ServiceException ( "服务器正忙!!!" ) ;
}
//单个
String filename = QRCodeUtil . createCodeToFile ( qrCode ) ;
disStockListDetail . put ( "img" , QRCodeUtil . getEmpAutograph ( filename ) ) ;
data . add ( disStockListDetail ) ;
orderPackgeCodeDataVO . setDataList ( data ) ;
return orderPackgeCodeDataVO ;
case "2" :
//包条码批量
String ids = ( String ) disStockListDetail . get ( "ids" ) ;
String [ ] idArray = ids . split ( "," ) ;
if ( ObjectUtils . isNull ( idArray ) ) {
throw new ServiceException ( "参数错误" ) ;
}
for ( String id : idArray ) {
// DisStockListDetailEntity dis = baseMapper.selectById(id);
// DistributionStockListEntity byId = distributionStockListService.getById(dis.getStockListId());
// DisStockListVO disStockListVO = new DisStockListVO();
// disStockListVO.setId(dis.getId());
// disStockListVO.setStockPackageCode(dis.getStockPackageCode());
// disStockListVO.setSku(byId.getSku());
// disStockListVO.setCargoUnit(byId.getCargoUnit());
// disStockListVO.setOrderCode(byId.getOrderCode());
// disStockListVO.setDescriptionGoods(byId.getDescriptionGoods());
// disStockListVO.setBrandName(byId.getBrandName());
// disStockListVO.setStockListId(disStockListVO.getStockListId());
// disStockListVO.setReservationId(disStockListVO.getReservationId());
//
// Map<String, Object> map = JSONObject.parseObject(JSONObject.toJSONString(disStockListVO), Map.class);
// String fileTypeName = QRCodeUtil.createCodeToFile(dis.getStockPackageCode());
// map.put("img", QRCodeUtil.getEmpAutograph(fileTypeName));
data . add ( fuzhi ( id ) ) ;
}
orderPackgeCodeDataVO . setDataList ( data ) ;
return orderPackgeCodeDataVO ;
case "3" :
//订单批量
String idsr = ( String ) disStockListDetail . get ( "ids" ) ;
String [ ] idArrays = idsr . split ( "," ) ;
if ( ObjectUtils . isNull ( idArrays ) ) {
throw new ServiceException ( "参数错误" ) ;
}
for ( String id : idArrays ) {
DistributionReservationStocklistEntity byId = distributionReservationStocklistService . getById ( id ) ;
List < DisStockListDetailEntity > disStockLists = baseMapper . selectList ( Wrappers . < DisStockListDetailEntity > query ( ) . lambda ( )
. eq ( DisStockListDetailEntity : : getStockListId , byId . getStocklistId ( ) )
. eq ( DisStockListDetailEntity : : getReservationId , byId . getReservationId ( ) )
. apply ( "stock_package_status in (1,3)" )
) ;
disStockLists . forEach ( i - > {
data . add ( fuzhi ( String . valueOf ( i . getId ( ) ) ) ) ;
} ) ;
}
orderPackgeCodeDataVO . setDataList ( data ) ;
return orderPackgeCodeDataVO ;
default :
throw new IllegalStateException ( "Unexpected value: " + type ) ;
}
}
/ * *
* 赋值模板转换
* @param id
* @return
* /
public Map < String , Object > fuzhi ( String id ) {
DisStockListDetailEntity dis = baseMapper . selectById ( id ) ;
DistributionStockListEntity byId = distributionStockListService . getById ( dis . getStockListId ( ) ) ;
DisStockListVO disStockListVO = new DisStockListVO ( ) ;
disStockListVO . setId ( dis . getId ( ) ) ;
disStockListVO . setStockPackageCode ( dis . getStockPackageCode ( ) ) ;
disStockListVO . setSku ( byId . getSku ( ) ) ;
disStockListVO . setCargoUnit ( byId . getCargoUnit ( ) ) ;
disStockListVO . setOrderCode ( byId . getOrderCode ( ) ) ;
disStockListVO . setDescriptionGoods ( byId . getDescriptionGoods ( ) ) ;
disStockListVO . setBrandName ( byId . getBrandName ( ) ) ;
disStockListVO . setStockListId ( disStockListVO . getStockListId ( ) ) ;
disStockListVO . setReservationId ( disStockListVO . getReservationId ( ) ) ;
Map < String , Object > map = JSONObject . parseObject ( JSONObject . toJSONString ( disStockListVO ) , Map . class ) ;
String fileTypeName = QRCodeUtil . createCodeToFile ( dis . getStockPackageCode ( ) ) ;
map . put ( "img" , QRCodeUtil . getEmpAutograph ( fileTypeName ) ) ;
return map ;
}
}