Merge remote-tracking branch 'origin/dev_fifo_z' into dev_fifo_z

dev_unify
yewj 8 months ago
commit bbdf9c5302

@ -16,9 +16,13 @@ import com.glxp.api.req.collect.CollectOrderUploadCountRequest;
import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UserWorkResponse; import com.glxp.api.res.basic.UserWorkResponse;
import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.res.collect.CollectOrderBizResponse;
import com.glxp.api.res.collect.CollectOrderUploadCountResponse;
import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.service.basic.BasicCollectUserService; import com.glxp.api.service.basic.BasicCollectUserService;
import com.glxp.api.service.collect.IoCollectOrderBackupService; import com.glxp.api.service.collect.IoCollectOrderBackupService;
import com.glxp.api.service.collect.IoCollectOrderBizBackupService;
import com.glxp.api.service.collect.IoCollectOrderService;
import io.swagger.models.auth.In;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -39,11 +43,13 @@ import java.util.stream.Collectors;
public class IoCollectOrderBackupController extends BaseController { public class IoCollectOrderBackupController extends BaseController {
@Resource @Resource
IoCollectOrderBackupService ioCollectOrderBackupService; private IoCollectOrderBackupService ioCollectOrderBackupService;
@Resource @Resource
private BasicCollectUserService basicCollectUserService; private BasicCollectUserService basicCollectUserService;
@Resource
private IoCollectOrderBizBackupService ioCollectOrderBizBackupService;
@PostMapping("/udiwms/basic/collect/orderFinish/filter") @PostMapping("/udiwms/basic/collect/orderFinish/filter")
public BaseResponse filterOrder(@RequestBody CollectOrderRequest collectOrderRequest) { public BaseResponse filterOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
@ -83,6 +89,11 @@ public class IoCollectOrderBackupController extends BaseController {
return ResultVOUtils.error(500, "未找到单据"); return ResultVOUtils.error(500, "未找到单据");
} }
List<CollectOrderBizResponse> collectOrderBizResponses = ioCollectOrderBackupService.combieOrderDetail(collectOrderBizRequest); List<CollectOrderBizResponse> collectOrderBizResponses = ioCollectOrderBackupService.combieOrderDetail(collectOrderBizRequest);
for (CollectOrderBizResponse response : collectOrderBizResponses){
if (response.getGgxh() == null){
response.setGgxh(response.getSpec());
}
}
PageInfo<CollectOrderBizResponse> pageInfo = new PageInfo<>(collectOrderBizResponses); PageInfo<CollectOrderBizResponse> pageInfo = new PageInfo<>(collectOrderBizResponses);
PageSimpleResponse<CollectOrderBizResponse> pageSimpleResponse = new PageSimpleResponse<>(); PageSimpleResponse<CollectOrderBizResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setTotal(pageInfo.getTotal());
@ -131,15 +142,42 @@ public class IoCollectOrderBackupController extends BaseController {
*/ */
@PostMapping ("/udiwms/basic/collect/orderFinish/uploadCount") @PostMapping ("/udiwms/basic/collect/orderFinish/uploadCount")
public BaseResponse uploadCount(@RequestBody CollectOrderUploadCountRequest collectOrderUploadCountRequest) { public BaseResponse uploadCount(@RequestBody CollectOrderUploadCountRequest collectOrderUploadCountRequest) {
CollectOrderUploadCountResponse collectOrderUploadCountResponse = new CollectOrderUploadCountResponse();
if(collectOrderUploadCountRequest.getStartTime()!=null
&& collectOrderUploadCountRequest.getEndTime() !=null){
collectOrderUploadCountRequest.setStartTime(collectOrderUploadCountRequest.getStartTime()+" 00:00:00");
collectOrderUploadCountRequest.setEndTime(collectOrderUploadCountRequest.getEndTime()+" 23:59:59");
List<Map<String, Object>> map = ioCollectOrderBackupService.listMaps(new QueryWrapper<IoCollectOrderBackup>() }
List<Map<String, Object>> list = ioCollectOrderBackupService.listMaps(new QueryWrapper<IoCollectOrderBackup>()
.groupBy("uploadStatus") .groupBy("uploadStatus")
.between(collectOrderUploadCountRequest.getStartTime()!=null .between(collectOrderUploadCountRequest.getStartTime()!=null
&& collectOrderUploadCountRequest.getEndTime() !=null && collectOrderUploadCountRequest.getEndTime() !=null
,"updateTime",collectOrderUploadCountRequest.getStartTime()+" 00:00:00",collectOrderUploadCountRequest.getEndTime()+" 23:59:59") ,"updateTime",collectOrderUploadCountRequest.getStartTime(),collectOrderUploadCountRequest.getEndTime())
.select("uploadStatus","count(1) as count") .select("uploadStatus","count(1) as count")
); );
return ResultVOUtils.success(map); Long notUploadingCount=0L;
Long alreadyUploadingCount=0L;
Long uploadingFailCount=0L;
if(list!=null && list.size() >0){
for (Map<String, Object> stringObjectMap : list) {
if(1 == (Integer)stringObjectMap.get("uploadStatus")){
notUploadingCount += (Long) stringObjectMap.get("count");
}else if(2 == (Integer)stringObjectMap.get("uploadStatus")){
alreadyUploadingCount += (Long)stringObjectMap.get("count");
}else if(3 == (Integer)stringObjectMap.get("uploadStatus")){
uploadingFailCount += (Long)stringObjectMap.get("count");
}
}
}
collectOrderUploadCountResponse.setNotUploadingCount(notUploadingCount);
collectOrderUploadCountResponse.setAlreadyUploadingCount(alreadyUploadingCount);
collectOrderUploadCountResponse.setUploadingFailCount(uploadingFailCount);
// 总上传码数量 获取采购上传率 销售上传率 计算
ioCollectOrderBizBackupService.CalculatedUploadRate( collectOrderUploadCountRequest,collectOrderUploadCountResponse);
return ResultVOUtils.success(collectOrderUploadCountResponse);
} }
} }

@ -129,6 +129,7 @@ public class IoCodeTempController extends BaseController {
@Resource @Resource
IoCollectOrderBackupService ioCollectOrderBackupService; IoCollectOrderBackupService ioCollectOrderBackupService;
/** /**
* PDA----- * PDA-----
*/ */
@ -1584,6 +1585,12 @@ public class IoCodeTempController extends BaseController {
if (relCodeDetail != null) { if (relCodeDetail != null) {
codeEnttity.setGrantPaCode(relCodeDetail.getParentCode()); codeEnttity.setGrantPaCode(relCodeDetail.getParentCode());
} }
// if (StrUtil.isEmpty(codeEnttity.getBatchNo())) {
//当关联关系存在的时候 以关联关系的批次号为准
codeEnttity.setBatchNo(codeRelEntity.getBatchNo());
codeEnttity.setExpireDate(codeRelEntity.getMadeDate() + "");
codeEnttity.setExpireDate(codeRelEntity.getValidateDate() + "");
// }
} }
String unitFk = null; String unitFk = null;
@ -1677,7 +1684,6 @@ public class IoCodeTempController extends BaseController {
orderService.insertOrder(orderEntity); orderService.insertOrder(orderEntity);
} }
//todo 不关联查了直接查queue表
if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) { if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) {
// 判断货位里面是否有相同产品 // 判断货位里面是否有相同产品
if (orderEntity != null && StrUtil.isNotEmpty(orderEntity.getWorkPlaceQueueCode())) { if (orderEntity != null && StrUtil.isNotEmpty(orderEntity.getWorkPlaceQueueCode())) {
@ -2837,14 +2843,34 @@ public class IoCodeTempController extends BaseController {
} }
}); });
addOrderCodeRequest.setCodeList(codeList); List<String> codeOnelist = new ArrayList();
// 检查该码的所有一级码并且加入进去
for (String code : codeList) {
List<RelCodeDetail> list = relCodeDetailService.getAllNextOne(code);
if(list!=null && list.size() >0){
for (RelCodeDetail relCodeDetail : list) {
codeOnelist.add(relCodeDetail.getCurCode());
}
}else {
codeOnelist.add(code);
}
}
addOrderCodeRequest.setCodeList(codeOnelist);
addOrderCodeRequest.setCorpOrderId(orderFinishBillNo); addOrderCodeRequest.setCorpOrderId(orderFinishBillNo);
CollectOrderBizResponse response = collectOrderBizResponses.get(0);
//TODO 这里是获取已完成订单的 批次号
if (response.getBatchNo() != null){
addOrderCodeRequest.setBatchNo(response.getBatchNo());
addOrderCodeRequest.setProduceDate(response.getProductDate());
addOrderCodeRequest.setExpireDate(response.getExpireDate());
}
AddCodeResult addCodeResult = new AddCodeResult(); AddCodeResult addCodeResult = new AddCodeResult();
if (CollUtil.isEmpty(codeList)) if (CollUtil.isEmpty(codeOnelist))
return ResultVOUtils.error(500, "追溯码不能为空"); return ResultVOUtils.error(500, "追溯码不能为空");
List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>(); List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>();
for (String code : codeList) { for (String code : codeOnelist) {
VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse(); VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse();
AddOrderRequest addOrderRequest = new AddOrderRequest(); AddOrderRequest addOrderRequest = new AddOrderRequest();
BeanUtils.copyProperties(addOrderCodeRequest, addOrderRequest); BeanUtils.copyProperties(addOrderCodeRequest, addOrderRequest);

@ -14,4 +14,5 @@ import java.util.List;
public interface IoCollectOrderBackupMapper extends BaseMapper<IoCollectOrderBackup> { public interface IoCollectOrderBackupMapper extends BaseMapper<IoCollectOrderBackup> {
List<IoCollectOrderResponse> filterList(CollectOrderRequest collectOrderRequest); List<IoCollectOrderResponse> filterList(CollectOrderRequest collectOrderRequest);
} }

@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.collect.IoCollectOrderBizBackup; import com.glxp.api.entity.collect.IoCollectOrderBizBackup;
import com.glxp.api.req.collect.CollectOrderBizRequest; import com.glxp.api.req.collect.CollectOrderBizRequest;
import com.glxp.api.req.collect.CollectOrderUploadCountRequest;
import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.res.collect.CollectOrderBizResponse;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -14,4 +16,7 @@ import java.util.List;
public interface IoCollectOrderBizBackupMapper extends BaseMapper<IoCollectOrderBizBackup> { public interface IoCollectOrderBizBackupMapper extends BaseMapper<IoCollectOrderBizBackup> {
List<CollectOrderBizResponse> filterList(CollectOrderBizRequest collectOrderRequest); List<CollectOrderBizResponse> filterList(CollectOrderBizRequest collectOrderRequest);
List<CollectOrderBizResponse> getList(CollectOrderUploadCountRequest collectOrderUploadCountRequest);
} }

@ -21,6 +21,7 @@ import com.glxp.api.res.thrsys.ThrCorpsResponse;
import com.glxp.api.res.thrsys.ThrProductsResponse; import com.glxp.api.res.thrsys.ThrProductsResponse;
import com.glxp.api.res.thrsys.UdiwmsWarehouseDetail; import com.glxp.api.res.thrsys.UdiwmsWarehouseDetail;
import com.glxp.api.service.thrsys.ThrSystemService; import com.glxp.api.service.thrsys.ThrSystemService;
import com.glxp.api.util.OkHttpCli;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import okhttp3.*; import okhttp3.*;
import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.commons.lang3.exception.ExceptionUtils;
@ -28,8 +29,8 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* HttpClient * HttpClient
@ -44,6 +45,8 @@ public class ErpBasicClient {
HttpOkClient httpOkClient; HttpOkClient httpOkClient;
@Resource @Resource
private ThrSystemService basicThirdSysService; private ThrSystemService basicThirdSysService;
@Resource
private OkHttpCli okHttpCli;
/** /**
* *
@ -497,4 +500,23 @@ public class ErpBasicClient {
return ResultVOUtils.error(500, "连接第三方系统接口服务出错"); return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
} }
} }
public BaseResponse<Map<String,String[]>> getBuyType(String thirdSys) {
ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(thirdSys);
String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/getBuyType";
try {
String response = okHttpCli.doGet(url);
if (StrUtil.isEmpty(response)) {
return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
}
BaseResponse<Map<String,String[]>> listBaseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse<Map<String,String[]>>>() {
});
return listBaseResponse;
} catch (Exception e) {
log.error("获取交易类型集合", e);
return ResultVOUtils.error(500, "连接第三方系统接口服务出错"+e.getMessage());
}
}
} }

@ -125,6 +125,7 @@ public class FilterUdiRelRequest extends ListPageRequest {
private String payFeeCode; private String payFeeCode;
private String keyWords; private String keyWords;
private List<String> filterNameCodes;
} }

@ -51,4 +51,9 @@ public class AddOrderCodeRequest {
private String workPlaceQueueCode; private String workPlaceQueueCode;
private String orderFinishBillNo; private String orderFinishBillNo;
private String batchNo;
private String produceDate;
private String expireDate;
private String serialNo;
} }

@ -65,6 +65,9 @@ public class FilterOrderDetailResultRequest extends ListPageRequest {
private String confirmEndTime; //发票确认结束日期 private String confirmEndTime; //发票确认结束日期
private String corpName;//供应商名字 private String corpName;//供应商名字
private String prepnSpec;
private Boolean groupBuy; //是否集采产品 private Boolean groupBuy; //是否集采产品

@ -111,4 +111,6 @@ public class FilterInvPreProductRequest extends ListPageRequest {
private String diCode; private String diCode;
private Integer filterNoInv; private Integer filterNoInv;
private String keyWords;
} }

@ -117,4 +117,6 @@ public class FilterInvPreinProductRequest extends ListPageRequest {
private Integer filterNoInv; private Integer filterNoInv;
private String keyWords;
} }

@ -147,4 +147,8 @@ public class FilterInvProductRequest extends ListPageRequest {
*/ */
private Integer productsType = 1;//默认是耗材 private Integer productsType = 1;//默认是耗材
private String keyWords;
private String bzgg;
private String prepnSpec;
} }

@ -163,6 +163,9 @@ public class CollectOrderBizResponse {
private String workplaceQueueCode; private String workplaceQueueCode;
private String spec; private String spec;
private String busType;
private Integer uploadStatus;
// /** // /**
// * 未赋码数量 // * 未赋码数量
// */ // */

@ -0,0 +1,22 @@
package com.glxp.api.res.collect;
import io.swagger.models.auth.In;
import lombok.Data;
import java.math.BigDecimal;
/**
*
* qyt
*/
@Data
public class CollectOrderUploadCountResponse {
private Long notUploadingCount;
private Long alreadyUploadingCount;
private Long uploadingFailCount;
private BigDecimal buyerCentage;
private BigDecimal salesCentage;
private Integer codeCount;
}

@ -233,6 +233,8 @@ public class IoOrderDetailResultResponse {
//生产企业 //生产企业
private String manufactory; private String manufactory;
private String zczbhhzbapzbh;
public String getFromName() { public String getFromName() {
if (StrUtil.isNotEmpty(fromCorpName)) if (StrUtil.isNotEmpty(fromCorpName))

@ -393,4 +393,7 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
ioCheckInoutService.checkSecond(orderEntity); ioCheckInoutService.checkSecond(orderEntity);
return ResultVOUtils.success("更新成功"); return ResultVOUtils.success("更新成功");
} }
} }

@ -3,15 +3,20 @@ package com.glxp.api.service.collect;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.dao.collect.IoCollectOrderBizBackupMapper; import com.glxp.api.dao.collect.IoCollectOrderBizBackupMapper;
import com.glxp.api.entity.collect.IoCollectOrderBizBackup; import com.glxp.api.entity.collect.IoCollectOrderBizBackup;
import com.glxp.api.http.ErpBasicClient;
import com.glxp.api.req.collect.CollectOrderBizRequest; import com.glxp.api.req.collect.CollectOrderBizRequest;
import com.glxp.api.req.collect.CollectOrderUploadCountRequest;
import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.res.collect.CollectOrderBizResponse;
import com.glxp.api.res.collect.CollectOrderUploadCountResponse;
import io.swagger.models.auth.In;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collections; import java.math.BigDecimal;
import java.util.List; import java.util.*;
@Service @Service
@ -20,6 +25,8 @@ public class IoCollectOrderBizBackupService extends ServiceImpl<IoCollectOrderBi
@Resource @Resource
IoCollectOrderBizBackupMapper ioCollectOrderBizBackupMapper; IoCollectOrderBizBackupMapper ioCollectOrderBizBackupMapper;
@Resource
private ErpBasicClient erpBasicClient;
public List<CollectOrderBizResponse> filterList(CollectOrderBizRequest collectOrderRequest) { public List<CollectOrderBizResponse> filterList(CollectOrderBizRequest collectOrderRequest) {
if (collectOrderRequest == null) { if (collectOrderRequest == null) {
@ -32,4 +39,79 @@ public class IoCollectOrderBizBackupService extends ServiceImpl<IoCollectOrderBi
List<CollectOrderBizResponse> data = ioCollectOrderBizBackupMapper.filterList(collectOrderRequest); List<CollectOrderBizResponse> data = ioCollectOrderBizBackupMapper.filterList(collectOrderRequest);
return data; return data;
} }
/**
*
*/
public void CalculatedUploadRate(CollectOrderUploadCountRequest collectOrderUploadCountRequest, CollectOrderUploadCountResponse collectOrderUploadCountResponse) {
List<CollectOrderBizResponse> list = ioCollectOrderBizBackupMapper.getList(collectOrderUploadCountRequest);
Map<String, String[]> buyTypeMap = new HashMap<>();
List<String> buyTypeBuyer = new ArrayList<>();
List<String> buyTypeSales = new ArrayList<>();
Integer buyerCount = 0;
Integer salesCount = 0;
Integer buyerScanCount = 0;
Integer salesScanCount = 0;
BigDecimal buyerCentage = new BigDecimal(0);
BigDecimal salesCentage = new BigDecimal(0);
Integer codeCount = 0;
if (list != null && list.size() > 0) {
BaseResponse<Map<String, String[]>> baseResponse = erpBasicClient.getBuyType("thirdId");
if (baseResponse.getCode() == 20000) {
buyTypeMap = baseResponse.getData();
buyTypeBuyer = new ArrayList<>(Arrays.asList(buyTypeMap.get("buyType_3501")));
buyTypeBuyer.addAll(Arrays.asList(buyTypeMap.get("buyType_3502")));
buyTypeSales = new ArrayList<>(Arrays.asList(buyTypeMap.get("buyType_3505")));
buyTypeSales.addAll(Arrays.asList(buyTypeMap.get("buyType_3506")));
}
for (CollectOrderBizResponse collectOrderBizResponse : list) {
for (String buyType : buyTypeBuyer) {
if (buyType.equals(collectOrderBizResponse.getBusType())) {
buyerCount += collectOrderBizResponse.getCount();
// 只有已上传的码才是正确的码
if (2 == collectOrderBizResponse.getUploadStatus()) {
buyerScanCount += collectOrderBizResponse.getScanCount();
}
}
}
for (String buyType : buyTypeSales) {
if (buyType.equals(collectOrderBizResponse.getBusType())) {
salesCount += collectOrderBizResponse.getCount();
if (2 == collectOrderBizResponse.getUploadStatus()) {
salesScanCount += collectOrderBizResponse.getScanCount();
}
}
}
}
// 计算采购率和销售率
BigDecimal buyerCountBigDecimal = BigDecimal.valueOf(buyerCount);
BigDecimal buyerScanCountBigDecimal = BigDecimal.valueOf(buyerScanCount);
if(buyerCountBigDecimal.equals(new BigDecimal(0))){
buyerCentage = new BigDecimal(0).setScale(2, BigDecimal.ROUND_HALF_UP);
}else {
buyerCentage = buyerScanCountBigDecimal.divide(buyerCountBigDecimal,4, BigDecimal.ROUND_HALF_UP ).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
}
BigDecimal salesCountBigDecimal = BigDecimal.valueOf(salesCount);
BigDecimal salesScanCountBigDecimal = BigDecimal.valueOf(salesScanCount);
if(salesCountBigDecimal.equals(new BigDecimal(0))){
salesCentage = new BigDecimal(0).setScale(2, BigDecimal.ROUND_HALF_UP);
}else {
salesCentage = salesScanCountBigDecimal.divide(salesCountBigDecimal,4, BigDecimal.ROUND_HALF_UP ).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
}
codeCount = buyerScanCount + salesScanCount;
}
collectOrderUploadCountResponse.setBuyerCentage(buyerCentage);
collectOrderUploadCountResponse.setSalesCentage(salesCentage);
collectOrderUploadCountResponse.setCodeCount(codeCount);
}
public static void main(String[] args) {
System.out.println(new BigDecimal(0).setScale(2, BigDecimal.ROUND_HALF_UP));
}
} }

@ -153,7 +153,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
else udiRelevanceResponse = udiRelevanceResponses.get(0); else udiRelevanceResponse = udiRelevanceResponses.get(0);
//判断层级标识是否正确 //判断层级标识是否正确
if (IntUtil.value(sysWorkplaceDocumentEntity.getOrderCirType()) == 2) { if (IntUtil.value(sysWorkplaceDocumentEntity.getOrderCirType()) == 2) {
if (udiRelevanceResponse.getUseMaxLevel() !=null && IntUtil.value(udiRelevanceResponse.getPackLevel()) > IntUtil.value(udiRelevanceResponse.getUseMaxLevel())) { if (udiRelevanceResponse.getUseMaxLevel() != null && IntUtil.value(udiRelevanceResponse.getPackLevel()) > IntUtil.value(udiRelevanceResponse.getUseMaxLevel())) {
throw new JsonException(500, "当前产品不支持采集该包装层级追溯码!"); throw new JsonException(500, "当前产品不支持采集该包装层级追溯码!");
} }
if (udiRelevanceResponse.getUseMaxLevel() == null && IntUtil.value(udiRelevanceResponse.getPackLevel()) > 1) { if (udiRelevanceResponse.getUseMaxLevel() == null && IntUtil.value(udiRelevanceResponse.getPackLevel()) > 1) {
@ -464,10 +464,10 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
.bizIdFk(collectOrderBiz.getId()) .bizIdFk(collectOrderBiz.getId())
.relId(collectOrderBiz.getRelId()) .relId(collectOrderBiz.getRelId())
.nameCode(udiEntity.getUdi()) .nameCode(udiEntity.getUdi())
.batchNo(udiEntity.getBatchNo()) .batchNo(udiEntity.getBatchNo() == null ? collectOrderBiz.getBatchNo() : udiEntity.getBatchNo())
.serialNo(udiEntity.getSerialNo()) .serialNo(udiEntity.getSerialNo())
.productDate(udiEntity.getProduceDate()) .productDate(udiEntity.getProduceDate() == null ? collectOrderBiz.getProductDate() : udiEntity.getProduceDate())
.expireDate(udiEntity.getExpireDate()) .expireDate(udiEntity.getExpireDate() == null ? collectOrderBiz.getExpireDate() : udiEntity.getExpireDate())
.createTime(new Date()) .createTime(new Date())
.createUser(userId) .createUser(userId)
.updateTime(new Date()) .updateTime(new Date())
@ -477,6 +477,8 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
.isSplitCode(addTagCodeReqeust.getIsSplitCode()) .isSplitCode(addTagCodeReqeust.getIsSplitCode())
.scanActCount(scanCount) .scanActCount(scanCount)
.build(); .build();
RelCodeDetailResponse codeRelEntity = relCodeDetailService.findByCode(code); RelCodeDetailResponse codeRelEntity = relCodeDetailService.findByCode(code);
if (codeRelEntity != null) { if (codeRelEntity != null) {
collectOrderCodeMan.setParentCode(codeRelEntity.getParentCode()); collectOrderCodeMan.setParentCode(codeRelEntity.getParentCode());
@ -484,6 +486,12 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
if (relCodeDetail != null) { if (relCodeDetail != null) {
collectOrderCodeMan.setGrantPaCode(relCodeDetail.getParentCode()); collectOrderCodeMan.setGrantPaCode(relCodeDetail.getParentCode());
} }
// if (StrUtil.isEmpty(collectOrderCodeMan.getBatchNo())) {
//当关联关系存在的时候 以关联关系为准
collectOrderCodeMan.setBatchNo(codeRelEntity.getBatchNo());
collectOrderCodeMan.setProductDate(codeRelEntity.getMadeDate() + "");
collectOrderCodeMan.setExpireDate(codeRelEntity.getValidateDate() + "");
// }
} }
this.save(collectOrderCodeMan); this.save(collectOrderCodeMan);
} }

@ -173,6 +173,30 @@ public class RelCodeDetailService extends ServiceImpl<RelCodeDetailMapper, RelCo
} }
} }
} }
private void fetchAllChildrenOne(String code, List<RelCodeDetail> list) {
List<RelCodeDetail> relCodeDetails = this.baseMapper.selectList(
new LambdaQueryWrapper<RelCodeDetail>().eq(RelCodeDetail::getParentCode, code));
if (CollUtil.isNotEmpty(relCodeDetails)) {
Integer packLayer = relCodeDetails.get(0).getPackLayer();
if(packLayer == 1){
list.addAll(relCodeDetails);
}
for (RelCodeDetail relCodeDetail : relCodeDetails) {
fetchAllChildrenOne(relCodeDetail.getCurCode(), list);
}
}
}
/**
*
*
* @return
*/
public List<RelCodeDetail> getAllNextOne(String code) {
List<RelCodeDetail> list = new ArrayList<>();
fetchAllChildrenOne(code, list);
return list;
}
} }

@ -750,6 +750,13 @@
or basic_products.bzgg LIKE concat('%', #{keyWords}, '%') or basic_products.bzgg LIKE concat('%', #{keyWords}, '%')
or basic_products.prepnSpec LIKE concat('%', #{keyWords}, '%')) or basic_products.prepnSpec LIKE concat('%', #{keyWords}, '%'))
</if> </if>
<if test="filterNameCodes != null and filterNameCodes.size() != 0">
and nameCode not in
<foreach collection="filterNameCodes" item="item" open="(" separator="," close=")">
#{item}
</foreach>
and basic_products.packLevel = 1
</if>
</where> </where>
GROUP BY basic_udirel.id GROUP BY basic_udirel.id
ORDER BY modifyTime DESC ORDER BY modifyTime DESC

@ -140,4 +140,5 @@
GROUP BY icob.billNo GROUP BY icob.billNo
order by case when icob.orderTime is null then icob.createTime else icob.orderTime end desc order by case when icob.orderTime is null then icob.createTime else icob.orderTime end desc
</select> </select>
</mapper> </mapper>

@ -36,4 +36,13 @@
</where> </where>
group by icobb.id group by icobb.id
</select> </select>
<select id="getList" resultType="com.glxp.api.res.collect.CollectOrderBizResponse">
SELECT
biz_bac.* ,bac.busType,bac.uploadStatus
FROM
io_collect_order_biz_backup biz_bac, io_collect_order_backup bac where biz_bac.orderIdFk = bac.billNo
<if test="startTime != '' and startTime != null and endTime != '' and endTime != null">
AND bac.updateTime BETWEEN #{startTime} AND #{endTime}
</if>
</select>
</mapper> </mapper>

@ -31,6 +31,9 @@
a1.auditTime, a1.auditTime,
bu.isStack, bu.isStack,
bu.groupBuy, bu.groupBuy,
bp.prepnSpec,
COALESCE(bp.ylqxzcrbarmc,bp.manufactory) as manufactory,
bp.zczbhhzbapzbh,
GROUP_CONCAT(ioi.invoiceEncode ORDER BY ioi.invoiceEncode SEPARATOR ',') AS invoiceCodes, GROUP_CONCAT(ioi.invoiceEncode ORDER BY ioi.invoiceEncode SEPARATOR ',') AS invoiceCodes,
b1.NAME AS fromCorpName, b1.NAME AS fromCorpName,
basic_bussiness_type.name billTypeName basic_bussiness_type.name billTypeName
@ -38,6 +41,7 @@
LEFT JOIN io_order a1 ON a1.billNo = a2.orderIdFk LEFT JOIN io_order a1 ON a1.billNo = a2.orderIdFk
LEFT JOIN basic_corp b1 ON b1.erpId = a1.fromCorp LEFT JOIN basic_corp b1 ON b1.erpId = a1.fromCorp
LEFT JOIN basic_udirel bu ON a2.bindRlFk = bu.id LEFT JOIN basic_udirel bu ON a2.bindRlFk = bu.id
inner JOIN basic_products bp ON bp.uuid = bu.uuid
left join basic_bussiness_type on a1.action = basic_bussiness_type.action left join basic_bussiness_type on a1.action = basic_bussiness_type.action
LEFT JOIN io_order_invoice ioi ON a1.billNo = ioi.orderIdFk LEFT JOIN io_order_invoice ioi ON a1.billNo = ioi.orderIdFk
left join auth_warehouse aw on aw.code = a1.fromInvCode left join auth_warehouse aw on aw.code = a1.fromInvCode
@ -52,9 +56,9 @@
<if test="productType != null and productType != ''"> <if test="productType != null and productType != ''">
AND a1.productType = #{productType} AND a1.productType = #{productType}
</if> </if>
<if test="keyWords != null and keyWords != ''"> <!-- <if test="keyWords != null and keyWords != ''">-->
AND (aw.name like concat('%', #{keyWords}, '%') or b1.name like concat('%', #{keyWords}, '%')) <!-- AND (aw.name like concat('%', #{keyWords}, '%') or b1.name like concat('%', #{keyWords}, '%'))-->
</if> <!-- </if>-->
<if test="nameCode != null and nameCode != ''"> <if test="nameCode != null and nameCode != ''">
AND a2.nameCode = #{nameCode} AND a2.nameCode = #{nameCode}
</if> </if>
@ -109,12 +113,30 @@
<if test="productName != null and productName != ''"> <if test="productName != null and productName != ''">
AND a2.coName like concat('%', #{productName}, '%') AND a2.coName like concat('%', #{productName}, '%')
</if> </if>
<if test="prepnSpec != null and prepnSpec != ''">
AND bp.prepnSpec like concat('%', #{prepnSpec}, '%')
</if>
<if test="actions != null and actions.size() != 0"> <if test="actions != null and actions.size() != 0">
AND a1.`action` in AND a1.`action` in
<foreach collection="actions" index="index" item="item" open="(" close=")" separator=","> <foreach collection="actions" index="index" item="item" open="(" close=")" separator=",">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="keyWords != '' and keyWords != null">
AND (
a2.nameCode LIKE concat('%', #{keyWords}, '%')
or a2.coName like concat('%', #{keyWords}, '%')
or a2.orderIdFk LIKE concat('%', #{keyWords}, '%')
or a2.spec LIKE concat('%', #{keyWords}, '%')
or bp.prepnSpec LIKE concat('%', #{keyWords}, '%')
or a2.batchNo like concat('%', #{keyWords}, '%')
or bp.zczbhhzbapzbh LIKE concat('%', #{keyWords}, '%')
or bp.manufactory LIKE concat('%', #{keyWords}, '%')
or bp.ylqxzcrbarywmc LIKE concat('%', #{keyWords}, '%')
or b1.name like concat('%', #{keyWords}, '%')
or aw.name like concat('%', #{keyWords}, '%'))
</if>
</where> </where>
group by a2.id group by a2.id
</select> </select>

@ -85,6 +85,16 @@
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="keyWords != '' and keyWords != null">
AND (
bp.cpmctymc like concat('%', #{keyWords}, '%')
or ipp.nameCode like concat('%', #{keyWords}, '%')
or bp.ggxh like concat('%', #{keyWords}, '%')
or ipp.batchNo like concat('%', #{keyWords}, '%')
or bp.zczbhhzbapzbh like concat('%', #{keyWords}, '%')
or bp.ylqxzcrbarmc like concat('%', #{keyWords}, '%')
)
</if>
</where> </where>
group by ipp.id group by ipp.id
</select> </select>
@ -305,6 +315,16 @@
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="keyWords != '' and keyWords != null">
AND (
bp.cpmctymc like concat('%', #{keyWords}, '%')
or ipp.nameCode like concat('%', #{keyWords}, '%')
or bp.ggxh like concat('%', #{keyWords}, '%')
or ipp.batchNo like concat('%', #{keyWords}, '%')
or bp.zczbhhzbapzbh like concat('%', #{keyWords}, '%')
or bp.ylqxzcrbarmc like concat('%', #{keyWords}, '%')
)
</if>
</where> </where>
GROUP BY ipp.relId, ipp.batchNo GROUP BY ipp.relId, ipp.batchNo
order by ipp.updateTime desc order by ipp.updateTime desc

@ -85,6 +85,16 @@
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="keyWords != '' and keyWords != null">
AND (
bp.cpmctymc like concat('%', #{keyWords}, '%')
or ipp.nameCode like concat('%', #{keyWords}, '%')
or bp.ggxh like concat('%', #{keyWords}, '%')
or ipp.batchNo like concat('%', #{keyWords}, '%')
or bp.zczbhhzbapzbh like concat('%', #{keyWords}, '%')
or bp.ylqxzcrbarmc like concat('%', #{keyWords}, '%')
)
</if>
</where> </where>
group by ipp.id group by ipp.id
</select> </select>
@ -305,6 +315,16 @@
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="keyWords != '' and keyWords != null">
AND (
bp.cpmctymc like concat('%', #{keyWords}, '%')
or ipp.nameCode like concat('%', #{keyWords}, '%')
or bp.ggxh like concat('%', #{keyWords}, '%')
or ipp.batchNo like concat('%', #{keyWords}, '%')
or bp.zczbhhzbapzbh like concat('%', #{keyWords}, '%')
or bp.ylqxzcrbarmc like concat('%', #{keyWords}, '%')
)
</if>
</where> </where>
GROUP BY ipp.relId, ipp.batchNo GROUP BY ipp.relId, ipp.batchNo
order by ipp.updateTime desc order by ipp.updateTime desc

@ -65,6 +65,12 @@
<if test="ggxh != null and ggxh != ''"> <if test="ggxh != null and ggxh != ''">
AND bp.ggxh like concat('%', #{ggxh}, '%') AND bp.ggxh like concat('%', #{ggxh}, '%')
</if> </if>
<if test="bzgg != null and bzgg != ''">
AND bp.bzgg like concat('%', #{bzgg}, '%')
</if>
<if test="prepnSpec != null and prepnSpec != ''">
AND bp.prepnSpec like concat('%', #{prepnSpec}, '%')
</if>
<if test="batchNo != null and batchNo != ''"> <if test="batchNo != null and batchNo != ''">
AND ipp.batchNo like concat('%', #{batchNo}, '%') AND ipp.batchNo like concat('%', #{batchNo}, '%')
</if> </if>
@ -75,7 +81,10 @@
AND ipp.expireDate = #{expireDate} AND ipp.expireDate = #{expireDate}
</if> </if>
<if test="ylqxzcrbarmc != null and ylqxzcrbarmc != ''"> <if test="ylqxzcrbarmc != null and ylqxzcrbarmc != ''">
AND bp.ylqxzcrbarmc like concat('%', #{ylqxzcrbarmc}, '%') AND (
bp.ylqxzcrbarmc like concat('%', #{ylqxzcrbarmc}, '%')
or bp.manufactory like concat('%', #{ylqxzcrbarmc}, '%')
)
</if> </if>
<if test="zczbhhzbapzbh != null and zczbhhzbapzbh != ''"> <if test="zczbhhzbapzbh != null and zczbhhzbapzbh != ''">
AND bp.zczbhhzbapzbh like concat('%', #{zczbhhzbapzbh}, '%') AND bp.zczbhhzbapzbh like concat('%', #{zczbhhzbapzbh}, '%')
@ -99,6 +108,18 @@
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="keyWords != '' and keyWords != null">
AND (
bp.cpmctymc like concat('%', #{keyWords}, '%')
or ipp.nameCode like concat('%', #{keyWords}, '%')
or bp.ggxh like concat('%', #{keyWords}, '%')
or bp.bzgg like concat('%', #{keyWords}, '%')
or bp.prepnSpec LIKE concat('%', #{keyWords}, '%')
or ipp.batchNo like concat('%', #{keyWords}, '%')
or bp.zczbhhzbapzbh LIKE concat('%', #{keyWords}, '%')
or bp.manufactory LIKE concat('%', #{keyWords}, '%')
or bp.ylqxzcrbarywmc LIKE concat('%', #{keyWords}, '%'))
</if>
</where> </where>
GROUP BY ipp.relIdFk, ipp.batchNo GROUP BY ipp.relIdFk, ipp.batchNo
order by ipp.updateTime desc order by ipp.updateTime desc

@ -85,7 +85,10 @@
AND ip.expireDate = #{expireDate} AND ip.expireDate = #{expireDate}
</if> </if>
<if test="ylqxzcrbarmc != null and ylqxzcrbarmc != ''"> <if test="ylqxzcrbarmc != null and ylqxzcrbarmc != ''">
AND bp.ylqxzcrbarmc like concat('%', #{ylqxzcrbarmc}, '%') AND (
bp.ylqxzcrbarmc like concat('%', #{ylqxzcrbarmc}, '%')
or bp.manufactory like concat('%', #{ylqxzcrbarmc}, '%')
)
</if> </if>
<if test="zczbhhzbapzbh != null and zczbhhzbapzbh != ''"> <if test="zczbhhzbapzbh != null and zczbhhzbapzbh != ''">
AND bp.zczbhhzbapzbh like concat('%', #{zczbhhzbapzbh}, '%') AND bp.zczbhhzbapzbh like concat('%', #{zczbhhzbapzbh}, '%')
@ -124,12 +127,30 @@
<if test="attributeType != '' and attributeType != null"> <if test="attributeType != '' and attributeType != null">
AND basic_udirel.attributeType = #{attributeType} AND basic_udirel.attributeType = #{attributeType}
</if> </if>
<if test="bzgg != null and bzgg != ''">
AND bp.bzgg like concat('%', #{bzgg}, '%')
</if>
<if test="prepnSpec != null and prepnSpec != ''">
AND bp.prepnSpec like concat('%', #{prepnSpec}, '%')
</if>
<if test="invCodes != null and invCodes.size() != 0"> <if test="invCodes != null and invCodes.size() != 0">
AND ip.invCode in AND ip.invCode in
<foreach collection="invCodes" item="item" index="index" open="(" close=")" separator=","> <foreach collection="invCodes" item="item" index="index" open="(" close=")" separator=",">
#{item} #{item}
</foreach> </foreach>
</if> </if>
<if test="keyWords != '' and keyWords != null">
AND (
bp.cpmctymc like concat('%', #{keyWords}, '%')
or ip.nameCode like concat('%', #{keyWords}, '%')
or bp.ggxh like concat('%', #{keyWords}, '%')
or bp.bzgg like concat('%', #{keyWords}, '%')
or bp.prepnSpec LIKE concat('%', #{keyWords}, '%')
or ip.batchNo like concat('%', #{keyWords}, '%')
or bp.zczbhhzbapzbh LIKE concat('%', #{keyWords}, '%')
or bp.manufactory LIKE concat('%', #{keyWords}, '%')
or bp.ylqxzcrbarywmc LIKE concat('%', #{keyWords}, '%'))
</if>
</where> </where>
GROUP BY ip.relIdFk, ip.batchNo, ip.supId, ip.price GROUP BY ip.relIdFk, ip.batchNo, ip.supId, ip.price
order by ip.updateTime desc order by ip.updateTime desc

Loading…
Cancel
Save