@ -8,13 +8,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper ;
import com.glxp.api.common.util.ResultVOUtils ;
import com.glxp.api.constant.Constant ;
import com.glxp.api.dao.basic.UdiRelevanceDao ;
import com.glxp.api.entity.auth.AuthAdmin ;
import com.glxp.api.entity.auth.DeptEntity ;
import com.glxp.api.entity.basic.BasicCorpEntity ;
import com.glxp.api.entity.basic.BasicProductsEntity ;
import com.glxp.api.entity.dev.DeviceChangeLogEntity ;
import com.glxp.api.entity.dev.DeviceChangeOrderEntity ;
import com.glxp.api.entity.dev.DeviceChangeOrderItemEntity ;
import com.glxp.api.entity.dev.DeviceInfoEntity ;
import com.glxp.api.entity.inout.IoCodeEntity ;
import com.glxp.api.entity.inout.IoOrderDetailResultEntity ;
import com.glxp.api.entity.inout.IoOrderEntity ;
import com.glxp.api.enums.dev.DeviceChangeStatusEnum ;
import com.glxp.api.enums.dev.DeviceChangeTypeEnum ;
import com.glxp.api.enums.dev.DeviceStatusEnum ;
@ -26,7 +31,9 @@ import com.glxp.api.req.dev.DeviceChangeOrderParam;
import com.glxp.api.req.dev.DeviceChangeOrderQuery ;
import com.glxp.api.req.system.DeleteRequest ;
import com.glxp.api.res.basic.UdiRelevanceResponse ;
import com.glxp.api.service.auth.CustomerService ;
import com.glxp.api.service.auth.DeptService ;
import com.glxp.api.service.basic.BasicCorpService ;
import com.glxp.api.service.basic.ProductInfoService ;
import com.glxp.api.service.basic.SysApprovalFlowService ;
import com.glxp.api.service.basic.UdiRelevanceService ;
@ -47,9 +54,11 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource ;
import java.sql.SQLException ;
import java.time.LocalDate ;
import java.time.LocalDateTime ;
import java.util.ArrayList ;
import java.util.List ;
import java.util.stream.Collectors ;
/ * *
* 针 对 表 【 device_change_order ( 设 备 变 更 单 ) 】 的 数 据 库 操 作 Service 实 现
@ -75,6 +84,12 @@ public class DeviceChangeOrderServiceImpl extends ServiceImpl<DeviceChangeOrderM
SysApprovalFlowService sysApprovalFlowService ;
@Resource
GennerOrderUtils gennerOrderUtils ;
@Resource
CustomerService customerService ;
@Resource
UdiRelevanceDao udiRelevanceDao ;
@Resource
BasicCorpService basicCorpService ;
@Override
public List < DeviceChangeOrderVo > listByVo ( DeviceChangeOrderQuery query , AuthAdmin user ) {
@ -354,6 +369,61 @@ public class DeviceChangeOrderServiceImpl extends ServiceImpl<DeviceChangeOrderM
super . save ( order ) ;
return order . getOrderId ( ) + "" ;
}
@Override
public void generateDeviceInfo ( IoOrderEntity orderEntity , List < IoCodeEntity > codeEnttities ) {
if ( CollectionUtil . isEmpty ( codeEnttities ) ) return ;
AuthAdmin user = customerService . getUserBean ( ) ;
DeviceChangeOrderParam param = new DeviceChangeOrderParam ( ) ;
ArrayList < DeviceChangeOrderParam . Item > items = new ArrayList < > ( ) ;
String purOrderId = orderEntity . getPurOrderId ( ) ;
String purPlanId = orderEntity . getPurPlanId ( ) ;
param . setType ( DeviceChangeTypeEnum . ADD ) ;
param . setDeptCode ( orderEntity . getDeptCode ( ) ) ;
codeEnttities . forEach ( ioCode - > {
String nameCode = ioCode . getNameCode ( ) ;
List < UdiRelevanceResponse > productsEntitiesByNameCode = udiRelevanceDao . getProductsEntitiesByNameCode ( nameCode ) ;
DeviceChangeOrderParam . Item item = new DeviceChangeOrderParam . Item ( ) ;
if ( CollectionUtil . isNotEmpty ( productsEntitiesByNameCode ) ) {
UdiRelevanceResponse udiRelevanceResponse = productsEntitiesByNameCode . get ( 0 ) ;
BeanUtil . copyProperties ( udiRelevanceResponse , item ) ;
item . setProductName ( udiRelevanceResponse . getCpmctymc ( ) ) ;
}
String deviceCode = deviceInfoService . genDeviceCode ( ) ;
item . setDeviceCode ( deviceCode ) ;
item . setUdi ( ioCode . getCode ( ) ) ;
item . setBatchNo ( ioCode . getBatchNo ( ) ) ;
item . setSerialNo ( ioCode . getSerialNo ( ) ) ;
item . setProductionDate ( convertToDateFormat ( "20" + ioCode . getProduceDate ( ) ) ) ;
item . setExpireDate ( convertToDateFormat ( "20" + ioCode . getExpireDate ( ) ) ) ;
item . setSupId ( ioCode . getSupId ( ) ) ;
BasicCorpEntity basicCorpEntity = basicCorpService . selectByErpId ( ioCode . getSupId ( ) ) ;
item . setSupName ( basicCorpEntity . getName ( ) ) ;
item . setPurOrderBillNo ( purOrderId ) ;
item . setPurPlanBillNo ( purPlanId ) ;
item . setProductId ( ioCode . getRelId ( ) ) ;
items . add ( item ) ;
} ) ;
param . setItems ( items ) ;
saveOrder ( user , param ) ;
}
public String convertToDateFormat ( String dateString ) {
if ( dateString = = null | | dateString . length ( ) ! = 8 ) {
return "" ;
}
// 使用String的substring方法来分割日期
String year = dateString . substring ( 0 , 4 ) ;
String month = dateString . substring ( 4 , 6 ) ;
String day = dateString . substring ( 6 , 8 ) ;
// 使用StringBuilder来拼接结果
StringBuilder formattedDate = new StringBuilder ( ) ;
formattedDate . append ( year ) . append ( "-" ) . append ( month ) . append ( "-" ) . append ( day ) ;
return formattedDate . toString ( ) ;
}
}