1.扫码单据生成业务单据加价格;

2.第三方产品信息插入时修改;
3.业务单据问题
fengcang
anthonyywj2 3 years ago
parent fb5cf1d364
commit f332a826bf

@ -129,13 +129,14 @@ public class UdiInfoController {
public BaseResponse filterLocalByUuid(FilterUdiInfoRequest productInfoFilterRequest) {
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(productInfoFilterRequest.getRelId());
udiRelevanceService.selectByUuid(productInfoFilterRequest.getUuid());
// udiRelevanceService.selectByUuid(productInfoFilterRequest.getUuid());
List<UdiInfoEntity> udiInfoEntities = udiInfoService.filterAllUdiInfo(productInfoFilterRequest);
if (CollUtil.isNotEmpty(udiInfoEntities)) {
for (UdiInfoEntity udiInfoEntity : udiInfoEntities) {
if (udiRelevanceEntity != null) {
udiInfoEntity.setManufactory(udiRelevanceEntity.getManufactory());
udiInfoEntity.setMeasname(udiRelevanceEntity.getMeasname());
udiInfoEntity.setPrice(udiRelevanceEntity.getPrice());
}
}
}

@ -1,5 +1,6 @@
package com.glxp.api.admin.controller.business;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.admin.annotation.AuthRuleAnnotation;
@ -10,7 +11,10 @@ import com.glxp.api.admin.entity.basic.BussinessLocalTypeEntity;
import com.glxp.api.admin.entity.basic.UdiEntity;
import com.glxp.api.admin.entity.basic.UdiInfoEntity;
import com.glxp.api.admin.entity.business.StockOrderDetailEntity;
import com.glxp.api.admin.entity.business.StockOrderEntity;
import com.glxp.api.admin.entity.info.SystemParamConfigEntity;
import com.glxp.api.admin.entity.inout.ErpOrderEntity;
import com.glxp.api.admin.entity.inout.WarehouseEntity;
import com.glxp.api.admin.exception.JsonException;
import com.glxp.api.admin.req.basic.CompanyProductRelevanceRequest;
import com.glxp.api.admin.req.basic.FilterUdiInfoRequest;
@ -31,9 +35,11 @@ import com.glxp.api.admin.service.basic.UdiInfoService;
import com.glxp.api.admin.service.basic.UdiRelevanceService;
import com.glxp.api.admin.service.business.StockOrderDetailService;
import com.glxp.api.admin.service.business.StockOrderDetailTempService;
import com.glxp.api.admin.service.business.StockOrderService;
import com.glxp.api.admin.service.business.StockQRCodeTextService;
import com.glxp.api.admin.service.info.CompanyProductRelevanceService;
import com.glxp.api.admin.service.info.SystemParamConfigService;
import com.glxp.api.admin.service.inout.CodesService;
import com.glxp.api.admin.thread.IoTransInoutService;
import com.glxp.api.admin.util.FilterUdiUtils;
import com.glxp.api.common.enums.ResultEnum;
@ -51,6 +57,8 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@RestController
@ -59,9 +67,9 @@ public class StockOrderDetailController {
@Resource
StockOrderDetailService stockOrderDetailService;
@Resource
StockOrderDetailTempService stockOrderDetailTempService;
StockOrderService stockOrderService;
@Resource
StockQRCodeTextService stockQRCodeTextService;
StockOrderDetailTempService stockOrderDetailTempService;
@Resource
UdiInfoService udiInfoService;
@Resource
@ -69,16 +77,15 @@ public class StockOrderDetailController {
@Resource
private CompanyProductRelevanceService companyProductRelevanceService;
@Resource
private IoTransInoutService transInoutService;
@Autowired
private SystemParamConfigService systemParamConfigService;
@Resource
AuthAdminService authAdminService;
@Resource
BussinessTypeService bussinessTypeService;
@Resource
BussinessLocalTypeService bussinessLocalTypeService;
@Resource
CodesService codesService;
@AuthRuleAnnotation("")
@GetMapping("/udiwms/stock/order/detail/filter")
@ -88,8 +95,15 @@ public class StockOrderDetailController {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
StockOrderEntity stockOrderEntity = stockOrderService.findById(stockOrderDetailFilterRequest.getOrderIdFk());
String value = systemParamConfigService.selectValueByParamKey("oeder_detail_by_code");
List<StockOrderDetailEntity> stockOrderDetailEntityList
= stockOrderDetailService.filterStockOrderDetail(stockOrderDetailFilterRequest);
// if (StrUtil.isNotEmpty(value) && value.equals("1")) {
// stockOrderDetailEntityList = transferSerList(stockOrderDetailEntityList, stockOrderEntity.getOrderIdFk());
// }
PageInfo<StockOrderDetailEntity> pageInfo;
pageInfo = new PageInfo<>(stockOrderDetailEntityList);
PageSimpleResponse<StockOrderDetailEntity> pageSimpleResponse = new PageSimpleResponse<>();
@ -98,6 +112,36 @@ public class StockOrderDetailController {
return ResultVOUtils.success(pageSimpleResponse);
}
public List<StockOrderDetailEntity> transferSerList(List<StockOrderDetailEntity> stockOrderDetailEntities, String orderId) {
List<StockOrderDetailEntity> resultList = new ArrayList<>();
List<WarehouseEntity> codeList = codesService.findByReceiptId(orderId);
if (CollUtil.isNotEmpty(stockOrderDetailEntities)) {
for (StockOrderDetailEntity stockOrderDetailEntity : stockOrderDetailEntities) {
if (CollUtil.isNotEmpty(codeList)) {
for (WarehouseEntity codeDetaiEntity : codeList) {
if (StrUtil.trimToEmpty(codeDetaiEntity.getRelId()).equals(StrUtil.trimToEmpty(stockOrderDetailEntity.getRelId()))
&& StrUtil.trimToEmpty(codeDetaiEntity.getBatchNo()).equals(StrUtil.trimToEmpty(stockOrderDetailEntity.getBatchNo()))
) {
StockOrderDetailEntity item = new StockOrderDetailEntity();
BeanUtils.copyProperties(stockOrderDetailEntity, item);
item.setCode(codeDetaiEntity.getCode());
item.setSerialNo(codeDetaiEntity.getSerialNo());
item.setCount(codeDetaiEntity.getCount());
resultList.add(item);
}
}
}
}
}
Collections.sort(resultList, (o1, o2) -> {
Long cp = Long.parseLong(o1.getProductId()) - Long.parseLong(o2.getProductId());
return cp.intValue();
});
return resultList;
}
@AuthRuleAnnotation("")
@GetMapping("/udiwms/stock/order/detail/filter2")
public BaseResponse filterStockOrderDetail2(StockOrderDetailFilterRequest stockOrderDetailFilterRequest,

@ -22,6 +22,9 @@ import com.glxp.api.admin.entity.thrsys.ThrOrderDetailEntity;
import com.glxp.api.admin.entity.thrsys.ThrOrderEntity;
import com.glxp.api.admin.httpclient.ErpOrderClient;
import com.glxp.api.admin.httpclient.SpsDirectClient;
import com.glxp.api.admin.httpclient.req.UdiwmsOrderDetail;
import com.glxp.api.admin.httpclient.req.UdiwmsOrderRequest;
import com.glxp.api.admin.httpclient.req.UdiwmsPreInOrderRequest;
import com.glxp.api.admin.req.business.StockOrderDetailFilterRequest;
import com.glxp.api.admin.req.business.StockOrderFilterRequest;
import com.glxp.api.admin.req.info.SystemParamConfigRequest;
@ -62,10 +65,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@RestController
@ -78,13 +78,11 @@ public class OrderDetailController {
@Resource
OrderService orderService;
@Resource
private UdiRelevanceService udiRelevanceService;
@Resource
private CheckOrderUtils checkOrderUtils;
@Resource
private IoTransInoutService transInoutService;
@Autowired
@Resource
private SystemParamConfigService systemParamConfigService;
@Resource
@ -97,15 +95,11 @@ public class OrderDetailController {
@Resource
private StockOrderDetailService stockOrderDetailService;
@Resource
private CompanyService companyService;
@Resource
private BussinessTypeService bussinessTypeService;
@Resource
ThrDataService thrDataService;
@Resource
InvProductsTrService invProductsTrService;
@Resource
IoTransInoutService ioTransInoutService;
@Resource
BussinessOriginTypeService bussinessOriginTypeService;
@ -459,15 +453,50 @@ public class OrderDetailController {
if (filterErpOrderRequest.getOrderId() == null || filterErpOrderRequest.getOrderId().equals("")) {
filterErpOrderRequest.setOrderId("1");
}
String value = systemParamConfigService.selectValueByParamKey("oeder_detail_by_code");
filterErpOrderRequest.setPage(1);
filterErpOrderRequest.setLimit(100);
List<ErpOrderEntity> erpOrderEntities = orderDetailService.filterMyErpOrder(filterErpOrderRequest);
// if (StrUtil.isNotEmpty(value) && value.equals("1")) {
// erpOrderEntities = transferSerList(erpOrderEntities, filterErpOrderRequest.getOrderIdFk());
// }
if (CollUtil.isEmpty(erpOrderEntities)) {
return spsDirectClient.downloadOrderDetail(filterErpOrderRequest.getOrderId(), customerService.getUserId() + "");
}
return ResultVOUtils.success(erpOrderEntities);
}
public List<ErpOrderEntity> transferSerList(List<ErpOrderEntity> erpOrderEntities, String orderId) {
List<ErpOrderEntity> resultList = new ArrayList<>();
List<WarehouseEntity> codeList = codesService.findByReceiptId(orderId);
if (CollUtil.isNotEmpty(erpOrderEntities)) {
for (ErpOrderEntity erpOrderEntity : erpOrderEntities) {
if (CollUtil.isNotEmpty(codeList)) {
for (WarehouseEntity codeDetaiEntity : codeList) {
if (StrUtil.trimToEmpty(codeDetaiEntity.getRelId()).equals(StrUtil.trimToEmpty(erpOrderEntity.getRelIdFk()))
&& StrUtil.trimToEmpty(codeDetaiEntity.getBatchNo()).equals(StrUtil.trimToEmpty(erpOrderEntity.getBatchNo()))
) {
ErpOrderEntity item = new ErpOrderEntity();
BeanUtils.copyProperties(erpOrderEntity, item);
item.setCode(codeDetaiEntity.getCode());
item.setSerialNo(codeDetaiEntity.getSerialNo());
item.setCount(codeDetaiEntity.getCount());
resultList.add(item);
}
}
}
}
}
Collections.sort(resultList, (o1, o2) -> {
Long cp = Long.parseLong(o1.getBindRlFk()) - Long.parseLong(o2.getBindRlFk());
return cp.intValue();
});
return resultList;
}
@AuthRuleAnnotation("")
@GetMapping(value = "/warehouse/inout/order/uploadOrder")
public BaseResponse uploadOrder(FilterErpOrderRequest filterErpOrderRequest,

@ -15,8 +15,12 @@ public interface ThrProductsDao {
List<ThrProductsEntity> batchSelectByIds(FilterThrProductsRequest filterThrProductsRequest);
ThrProductsEntity selectById(@Param("id") String id);
List<ThrProductsEntity> selectThrProducts(FilterThrProductsRequest filterThrProductsRequest);
boolean insertOrUpdateSelective(ThrProductsEntity thrProductsEntity);
boolean insertThrProducts(ThrProductsEntity thrProductsEntity);
boolean insertThrProductss(@Param("thrProductsEntities") List<ThrProductsEntity> thrProductsEntities);

@ -64,6 +64,8 @@ public class UdiInfoEntity {
private boolean allowNoProduct;
private String spmc;
private String price;
public Integer getId() {
return id;
}

@ -37,4 +37,7 @@ public class StockOrderDetailEntity {
private String manufactory;
private boolean allowNoBatch;
private String code;
private String serialNo;
}

@ -71,4 +71,8 @@ public class ErpOrderEntity {
private String bindRlFk;
private String serialNo;
private String code;
}

@ -361,8 +361,6 @@ public class StockOrderServiceImpl implements StockOrderService {
});
if (baseResponse.getCode().equals(20000)) {
UdiwmsOrderResponse udiwmsOrderResponse = baseResponse.getData();
orderEntity.setExportStatus(1);
if (udiwmsOrderResponse != null) {
orderEntity.setThirdBillNo(udiwmsOrderResponse.getThirdBillNo());
@ -376,7 +374,7 @@ public class StockOrderServiceImpl implements StockOrderService {
return ResultVOUtils.success("提交成功");
}
uploadLog.setStatus(3);
uploadLog.setResult("提交失败");
uploadLog.setResult("提交失败;错误信息:" + baseResponse.getMessage());
stockOrderUploadLogService.insert(uploadLog);
return ResultVOUtils.error(500, "提交失败");
} catch (Exception e) {
@ -412,8 +410,6 @@ public class StockOrderServiceImpl implements StockOrderService {
AuthAdmin authAdmin = authAdminService.findById(orderEntity.getCreateUser().longValue());
udiwmsPreInOrderRequest.setActor(authAdmin.getEmployeeName());
}
List<UdiwmsPreInOrderRequest.ItemDTO> itemDTOS = new ArrayList<>();
if (CollUtil.isNotEmpty(udiwmsOrderRequest.getItem())) {
for (UdiwmsOrderDetail udiwmsOrderDetail : udiwmsOrderRequest.getItem()) {
@ -424,6 +420,7 @@ public class StockOrderServiceImpl implements StockOrderService {
itemDTO.setCode(codeDetaiEntity.getCode());
itemDTO.setCount(codeDetaiEntity.getCount());
itemDTOS.add(itemDTO);
}
}
}
@ -473,6 +470,9 @@ public class StockOrderServiceImpl implements StockOrderService {
request.setBillTypes(billTypes);
}
}
int offset = (request.getPage() - 1) * request.getLimit();
PageHelper.offsetPage(offset, request.getLimit());
List<StockOrderEntity> stockOrderEntityList = stockOrderDao.selectUploadList(request);
return stockOrderEntityList;
}

@ -15,6 +15,8 @@ public interface ThrProductsService {
ThrProductsEntity selectById(String id);
boolean insertOrUpdateSelective(ThrProductsEntity thrProductsEntity);
boolean insertThrProducts(ThrProductsEntity thrProductsEntity);
boolean insertThrProductss(List<ThrProductsEntity> thrProductsEntities);

@ -63,6 +63,11 @@ public class ThrProductsServiceImpl implements ThrProductsService {
return thrProductsDao.selectById(id);
}
@Override
public boolean insertOrUpdateSelective(ThrProductsEntity thrProductsEntity) {
return thrProductsDao.insertOrUpdateSelective(thrProductsEntity);
}
@Override
public boolean insertThrProducts(ThrProductsEntity thrProductsEntity) {
return thrProductsDao.insertThrProducts(thrProductsEntity);

@ -61,6 +61,7 @@ import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -251,7 +252,6 @@ public class IoTransInoutService {
}
//查找等待处理单据,转入正式表
@Async
public void transInout() {
@ -803,6 +803,11 @@ public class IoTransInoutService {
UdiRelevanceResponse udiRelevanceEntity = udiRelevanceService.selectGroupById(stockOrderDetailEntity.getRelId());
stockOrderDetailEntity.setProductName(erpOrderEntity.getGoodsname());
stockOrderDetailEntity.setYlqxzcrbarmc(udiRelevanceEntity.getYlqxzcrbarmc());
if (erpOrderEntity.getPrice() == null) {
if (StrUtil.isNotEmpty(udiRelevanceEntity.getPrice())) {
stockOrderDetailEntity.setPrice(new BigDecimal(udiRelevanceEntity.getPrice()));
}
}
stockOrderDetailEntity.setManufactory(udiRelevanceEntity.getManufactory());
stockOrderDetailEntity.setPrice(erpOrderEntity.getPrice());
stockOrderDetailEntity.setFirstSalesInvNo(erpOrderEntity.getFirstSalesInvNo());

@ -92,6 +92,7 @@ public class ThrProductsDlService {
ThrProductsEntity thrProductsEntity = new ThrProductsEntity();
BeanUtils.copyProperties(item, thrProductsEntity);
thrProductsEntity.setUpdateTime(new Date());
// thrProductsService.insertOrUpdateSelective(thrProductsEntity);
return thrProductsEntity;
}
).collect(Collectors.toList());
@ -391,13 +392,14 @@ public class ThrProductsDlService {
ThrProductsEntity thrProductsEntity = new ThrProductsEntity();
BeanUtils.copyProperties(item, thrProductsEntity);
thrProductsEntity.setUpdateTime(new Date());
thrProductsService.insertOrUpdateSelective(thrProductsEntity);
return thrProductsEntity;
}
).collect(Collectors.toList());
List<List<ThrProductsEntity>> products = CustomUtil.splitList(thrProductsEntities, 100);
for (List<ThrProductsEntity> data : products) {
thrProductsService.insertThrProductss(data);
}
// for (List<ThrProductsEntity> data : products) {
// thrProductsService.insertThrProductss(data);
// }
thrProductsImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
thrProductsImportLogEntity.setUpdateTime(new Date());
thrProductsImportLogService.updateImportLog(thrProductsImportLogEntity);

@ -81,7 +81,6 @@
</select>
<!-- ORDER BY updateTime DESC-->
<select id="selectById" parameterType="Map" resultType="com.glxp.api.admin.entity.thrsys.ThrProductsEntity">
select *
@ -89,7 +88,8 @@
WHERE id = #{id}
</select>
<insert id="insertThrProducts" keyProperty="id" parameterType="com.glxp.api.admin.entity.thrsys.ThrProductsEntity">
<insert id="insertThrProducts" keyProperty="id"
parameterType="com.glxp.api.admin.entity.thrsys.ThrProductsEntity">
replace
INTO thr_products
(code, `name`, measname, spec, registerNo, manufactory,
@ -122,7 +122,8 @@
#{remark},
#{remark1},
#{remark2},
#{remark3},#{price}
#{remark3},
#{price}
)
</insert>
@ -149,6 +150,76 @@
</foreach>
</insert>
<insert id="insertOrUpdateSelective" keyColumn="id" keyProperty="id"
parameterType="com.glxp.api.admin.entity.thrsys.ThrProductsEntity">
insert
INTO thr_products
(code, `name`, measname, spec, registerNo, manufactory,
cplb, flbm, qxlb, ybbm, sptm, tyshxydm, zczbhhzbapzbh, ylqxzcrbarmc, ylqxzcrbarywmc, cpms,
thirdSysFk, updateTime, supName, model, standard, qtbm, zczyxqz, remark, remark1, remark2, remark3,price)
values (
#{code},
#{name},
#{measname},
#{spec},
#{registerNo},
#{manufactory},
#{cplb},
#{flbm},
#{qxlb},
#{ybbm},
#{sptm},
#{tyshxydm},
#{zczbhhzbapzbh},
#{ylqxzcrbarmc},
#{ylqxzcrbarywmc},
#{cpms},
#{thirdSysFk},
#{updateTime},
#{supName},
#{model},
#{standard},
#{qtbm},
#{zczyxqz},
#{remark},
#{remark1},
#{remark2},
#{remark3},#{price}
)
on duplicate key update
<trim suffixOverrides=",">
<if test="code != null">code=#{code},</if>
<if test="name != null">name=#{name},</if>
<if test="measname != null">measname=#{measname},</if>
<if test="spec != null">spec=#{spec},</if>
<if test="registerNo != null">registerNo=#{registerNo},</if>
<if test="cplb != null">cplb=#{cplb},</if>
<if test="flbm != null">flbm=#{flbm},</if>
<if test="qxlb != null">qxlb=#{qxlb},</if>
<if test="ybbm != null">ybbm=#{ybbm},</if>
<if test="sptm != null">sptm=#{sptm},</if>
<if test="tyshxydm != null">tyshxydm=#{tyshxydm},</if>
<if test="zczbhhzbapzbh != null">zczbhhzbapzbh=#{zczbhhzbapzbh},</if>
<if test="ylqxzcrbarmc != null">ylqxzcrbarmc=#{ylqxzcrbarmc},</if>
<if test="ylqxzcrbarywmc != null">ylqxzcrbarywmc=#{ylqxzcrbarywmc},</if>
<if test="manufactory != null">manufactory=#{manufactory},</if>
<if test="cpms != null">cpms=#{cpms},</if>
<if test="thirdSysFk != null">thirdSysFk=#{thirdSysFk},</if>
<if test="updateTime != null">updateTime=#{updateTime},</if>
<if test="supName != null">supName=#{supName},</if>
<if test="model != null">model=#{model},</if>
<if test="standard != null">standard=#{standard},</if>
<if test="zczyxqz != null">zczyxqz=#{zczyxqz},</if>
<if test="remark != null">remark=#{remark},</if>
<if test="remark1 != null">remark1=#{remark1},</if>
<if test="remark2 != null">remark2=#{remark2},</if>
<if test="remark3 != null">remark3=#{remark3},</if>
<if test="price != null">price=#{price},</if>
</trim>
</insert>
<delete id="deleteById" parameterType="Map">
DELETE
FROM thr_products

Loading…
Cancel
Save