业务单据校验

master
anthonywj 4 years ago
parent 9a5c44b233
commit 213096bb36

@ -40,4 +40,8 @@ public class ConstantStatus {
public static String ST_THIRD_SEL = "2"; //第三方选入
public static String ST_SCAN_ADD = "3"; //扫码单据转换
//业务单据详情DI绑定状态
public static int ORDER_DETAIL_DI_MUTI = 1;
public static int ORDER_DETAIL_DI_ONE = 0;
}

@ -186,6 +186,21 @@ public class OrderDetailController {
}
@PostMapping("/udiwms/erpOrder/updateBind")
public BaseResponse updateBind(@RequestBody ErpOrderEntity erpOrderEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
boolean b = orderDetailService.updateErpOrder(erpOrderEntity);
if (b) {
return ResultVOUtils.success("绑定成功");
} else {
return ResultVOUtils.error(500, "绑定失败");
}
}
@GetMapping("/warehouse/getMyErpOrders")
public BaseResponse getMyErpOrders(FilterErpOrderRequest filterErpOrderRequest,
BindingResult bindingResult) {
@ -376,4 +391,16 @@ public class OrderDetailController {
return ResultVOUtils.success("后台已开始校验,请稍后刷新重试!");
}
@PostMapping("/warehouse/repeatPrintCheck")//TODO 重新校验
public BaseResponse repeatPrintCheck(@RequestBody FilterErpOrderRequest filterErpOrderRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
OrderFilterRequest orderFilterRequest = new OrderFilterRequest();
orderFilterRequest.setId(filterErpOrderRequest.getOrderId());
OrderEntity orderEntity = orderService.findOne(orderFilterRequest);
transInoutService.repeatPrint(orderEntity);
return ResultVOUtils.success("后台已开始校验,请稍后刷新重试!");
}
}

@ -332,13 +332,10 @@ public class StockOrderDetailController {
@GetMapping("/udiwms/stock/order/detail/queryProduct")
public BaseResponse queryProduct(@RequestParam("code") String code, @RequestParam("customerId") String customerId) {
List<UdiRelevanceResponse> udiRelevanceResponseList = new ArrayList<>();
UdiInfoEntity udiInfoEntity = null;
UdiEntity udiEntity = null;
if (StringUtils.isNotBlank(code)) {
FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
filterUdiInfoRequest.setCustomerId(customerId);
CompanyProductRelevanceRequest companyProductRelevanceRequest = new CompanyProductRelevanceRequest();
companyProductRelevanceRequest.setCustomerId(customerId);
if (code.length() > 13) {
String tStr = code.substring(0, 2);
@ -350,23 +347,20 @@ public class StockOrderDetailController {
}
}
}
StockOrderDetailQueryProductResponse stockOrderDetailQueryProductResponse = new StockOrderDetailQueryProductResponse();
if (udiEntity == null) {
filterUdiInfoRequest.setNameCode(code);
companyProductRelevanceRequest.setUnionCode(code);
stockOrderDetailQueryProductResponse.setUdi(code);
} else {
filterUdiInfoRequest.setNameCode(udiEntity.getUdi());
companyProductRelevanceRequest.setUnionCode(udiEntity.getUdi());
BeanUtils.copyProperties(udiEntity, stockOrderDetailQueryProductResponse);
}
udiRelevanceResponseList =
udiInfoService.filterUdiInfo2(filterUdiInfoRequest);
if (udiRelevanceResponseList.size() == 1) {
List<CompanyProductRelevanceResponse> basicInstrumentMaintainRelevanceResponses = null;
basicInstrumentMaintainRelevanceResponses = companyProductRelevanceService.filterUdiGp(companyProductRelevanceRequest);
if (basicInstrumentMaintainRelevanceResponses.size() == 1) {
stockOrderDetailQueryProductResponse.setGetType("1");
stockOrderDetailQueryProductResponse.setGetId(udiRelevanceResponseList.get(0).getId() + "");
} else if (udiRelevanceResponseList.size() > 1) {
stockOrderDetailQueryProductResponse.setGetId(basicInstrumentMaintainRelevanceResponses.get(0).getId() + "");
} else if (basicInstrumentMaintainRelevanceResponses.size() > 1) {
stockOrderDetailQueryProductResponse.setGetType("2");
} else {
return ResultVOUtils.error(ResultEnum.DATA_NOT, "未找到产品");

@ -53,6 +53,8 @@ public class ErpOrderEntity {
private String nameCodes;
private String status;
private Integer count;
private Integer bindStatus;
private String bindRlFk;
}

@ -14,6 +14,7 @@ public class OrderFilterRequest extends ListPageRequest {
private Integer status;
private String corpOrderId;
private Integer contrastStatus;
private Integer unionCtrStatus;
private Integer signStatus;
private String startTime;
private String endTime;

@ -11,6 +11,8 @@ public interface UdiRelevanceService {
List<UdiRelevanceResponse> filterUdiRelevance(FilterUdiInfoRequest filterUdiInfoRequest);
List<UdiRelevanceEntity> filterUdiEntity(FilterUdiInfoRequest filterUdiInfoRequest);
boolean isExit();
List<UdiRelevanceResponse> filterUdiGp(FilterUdiInfoRequest filterUdiInfoRequest);

@ -35,6 +35,13 @@ public class UdiRelevanceServiceImpl implements UdiRelevanceService {
return data;
}
@Override
public List<UdiRelevanceEntity> filterUdiEntity(FilterUdiInfoRequest filterUdiInfoRequest) {
List<UdiRelevanceEntity> data = udiRelevanceDao.filterEntity(filterUdiInfoRequest);
return data;
}
@Override
public boolean isExit() {
FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();

@ -92,7 +92,6 @@ public class ThrDataService {
filterThrOrderDetailRequest.setOrderIdFk(thrOrderEntity.getId() + "");
List<StockOrderDetailEntity> thrOrderDetailEntities = stockOrderDetailService.filterStockOrderDetail(filterThrOrderDetailRequest);
List<ErpOrderResponse.SubErpOrder> subErpOrders = new ArrayList<>();
if (thrOrderDetailEntities != null && thrOrderDetailEntities.size() > 0) {
for (StockOrderDetailEntity thrOrderDetailEntity : thrOrderDetailEntities) {
ErpOrderEntity erpOrderResponse = new ErpOrderEntity();

@ -7,10 +7,13 @@ import com.glxp.sale.admin.controller.inout.utils.DataTransUtil;
import com.glxp.sale.admin.controller.inout.utils.InoutUtils;
import com.glxp.sale.admin.entity.basic.BasicThirdSysDetailEntity;
import com.glxp.sale.admin.entity.basic.BussinessTypeEntity;
import com.glxp.sale.admin.entity.basic.UdiRelevanceEntity;
import com.glxp.sale.admin.entity.inout.*;
import com.glxp.sale.admin.entity.udid.UdiEntity;
import com.glxp.sale.admin.httpclient.ErpOrderClient;
import com.glxp.sale.admin.req.basic.FilterUdiInfoRequest;
import com.glxp.sale.admin.req.inout.*;
import com.glxp.sale.admin.res.basic.UdiRelevanceResponse;
import com.glxp.sale.admin.service.basic.BussinessTypeService;
import com.glxp.sale.admin.service.basic.UdiInfoService;
import com.glxp.sale.admin.service.basic.UdiRelevanceService;
@ -22,6 +25,7 @@ import com.glxp.sale.admin.util.FilterUdiUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
@ -249,6 +253,12 @@ public class IoTransInoutService {
}
}
@Async
public void repeatPrint(OrderEntity orderEntity) {
printOrder(orderEntity.getId());
}
public void checkOrder(OrderEntity orderEntity) {
orderEntity = orderService.findById(orderEntity.getId());
List<String> erpIds = DataTransUtil.strToErpList(orderEntity.getErpFk());
@ -259,12 +269,13 @@ public class IoTransInoutService {
checkThirdOrder(erpOrderEntities, orderEntity, transData);
} else {
orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_FAIL);
orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_UN);
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_SUCCESS);
orderEntity.setRemark("未选入第三方出入库单据进行校验,请手动选择");
orderService.updateOrder(orderEntity);
myErpOrderService.deleteByOrderId(orderEntity.getId());
new InoutUtils(udiUrl).generateConstrastDetail(udiInfoService, udiRelevanceService, myErpOrderService, transData);
printOrder(orderEntity.getId());
}
}
@ -321,40 +332,24 @@ public class IoTransInoutService {
if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_SUCCESS && orderEntity.getErpFk() == null
) {
//查询单据校验后生成的单据详情
FilterErpOrderRequest filterErpOrderRequest = new FilterErpOrderRequest();
filterErpOrderRequest.setOrderId(orderId);
List<ErpOrderEntity> erpOrderEntities = myErpOrderService.filterAllMyErpOrder(filterErpOrderRequest);
//生成业务单据记录
StockOrderEntity stockOrderEntity = new StockOrderEntity();
stockOrderEntity.setBillNo(orderEntity.getId());
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(orderEntity.getAction());
stockOrderEntity.setBillType(bussinessTypeEntity.getLocalAction());
stockOrderEntity.setBilldate(orderEntity.getActDate());
stockOrderEntity.setCustomerId(orderEntity.getCustomerId());
stockOrderEntity.setUnitIdFk(orderEntity.getCustomerId());
stockOrderEntity.setSourceType(ConstantStatus.ST_SCAN_ADD);
stockOrderEntity.setCorpId(orderEntity.getFromCorpId());
stockOrderEntity.setStatus(ConstantStatus.SORDER_CHECKED);
stockOrderEntity.setCorpName(orderEntity.getFromCorp());
stockOrderService.insertStockOrder(stockOrderEntity);
//删除关联的业务单据详情
StockOrderFilterRequest stockOrderFilterRequest = new StockOrderFilterRequest();
stockOrderFilterRequest.setBillNo(stockOrderEntity.getBillNo());
stockOrderEntity = stockOrderService.findOne(stockOrderFilterRequest);
stockOrderDetailService.deleteByOrderIdFk(stockOrderEntity.getId());
//生成业务单据详情
List<StockOrderDetailEntity> stockOrderDetailEntities = new ArrayList<>();
if (erpOrderEntities != null && erpOrderEntities.size() > 0) {
boolean isError = false;
for (ErpOrderEntity erpOrderEntity : erpOrderEntities) {
StockOrderDetailEntity stockOrderDetailEntity = new StockOrderDetailEntity();
stockOrderDetailEntity.setOrderIdFk(stockOrderEntity.getId());
// stockOrderDetailEntity.setOrderIdFk(stockOrderEntity.getId());
stockOrderDetailEntity.setProductId(erpOrderEntity.getGoodsid());
stockOrderDetailEntity.setProductName(erpOrderEntity.getGoodsname());
if (erpOrderEntity.getGoodsid() == null)
stockOrderDetailEntity.setProductId(erpOrderEntity.getNameCode());
if (erpOrderEntity.getGoodsname() == null)
@ -366,6 +361,8 @@ public class IoTransInoutService {
// stockOrderDetailEntity.setYlqxzcrbarmc(erpOrderEntity.get());
if (erpOrderEntity.getCount() != null) {
stockOrderDetailEntity.setSweepCount(erpOrderEntity.getCount() + "");
stockOrderDetailEntity.setReCount(erpOrderEntity.getReCount() + "");
stockOrderDetailEntity.setCount(erpOrderEntity.getErpCount() + "");
}
if (erpOrderEntity.getReCount() != null) {
stockOrderDetailEntity.setReCount(erpOrderEntity.getReCount() + "");
@ -373,11 +370,44 @@ public class IoTransInoutService {
if (erpOrderEntity.getErpCount() != null) {
stockOrderDetailEntity.setCount(erpOrderEntity.getErpCount() + "");
}
FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest();
filterUdiInfoRequest.setNameCode(erpOrderEntity.getNameCode());
List<UdiRelevanceResponse> udiRelevanceEntities = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest);
if (udiRelevanceEntities != null && udiRelevanceEntities.size() > 1 && erpOrderEntity.getBindRlFk() == null) {
isError = true;
erpOrderEntity.setBindStatus(ConstantStatus.ORDER_DETAIL_DI_MUTI);
myErpOrderService.updateErpOrder(erpOrderEntity);
} else if (udiRelevanceEntities.size() == 1) {
UdiRelevanceResponse udiRelevanceEntity = udiRelevanceEntities.get(0);
setThridName(bussinessTypeEntity, stockOrderDetailEntity, udiRelevanceEntity);
} else if (erpOrderEntity.getBindRlFk() != null) {
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectById(erpOrderEntity.getBindRlFk());
UdiRelevanceResponse udiRelevanceResponse = new UdiRelevanceResponse();
BeanUtils.copyProperties(udiRelevanceEntity, udiRelevanceResponse);
setThridName(bussinessTypeEntity, stockOrderDetailEntity, udiRelevanceResponse);
erpOrderEntity.setGoodsid(stockOrderDetailEntity.getProductId());
erpOrderEntity.setGoodsname(stockOrderDetailEntity.getProductName());
myErpOrderService.updateErpOrder(erpOrderEntity);
}
stockOrderDetailEntities.add(stockOrderDetailEntity);
}
stockOrderDetailService.insertStockOrderDetails(stockOrderDetailEntities);
if (!isError) {
StockOrderEntity stockOrderEntity = genStockOrder(orderEntity, bussinessTypeEntity);
for (StockOrderDetailEntity stockOrderDetailEntity : stockOrderDetailEntities) {
stockOrderDetailEntity.setOrderIdFk(stockOrderEntity.getId());
}
stockOrderDetailService.insertStockOrderDetails(stockOrderDetailEntities);
orderEntity.setRemark("");
orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_UN);
orderService.updateOrder(orderEntity);
} else {
orderEntity.setRemark("该产品DI绑定多个产品ID请在扫码单据详情绑定对应产品ID");
orderEntity.setContrastStatus(ConstantStatus.ORDER_CHECK_FAIL);
orderService.updateOrder(orderEntity);
}
}
} else if (orderEntity.getContrastStatus() == ConstantStatus.ORDER_CHECK_SUCCESS) {
String[] erpIds = orderEntity.getErpFk().split(",");
@ -393,6 +423,49 @@ public class IoTransInoutService {
}
}
public StockOrderEntity genStockOrder(OrderEntity orderEntity, BussinessTypeEntity bussinessTypeEntity) {
//生成业务单据记录
StockOrderEntity stockOrderEntity = new StockOrderEntity();
stockOrderEntity.setBillNo(orderEntity.getId());
stockOrderEntity.setBillType(bussinessTypeEntity.getLocalAction());
stockOrderEntity.setBilldate(orderEntity.getActDate());
stockOrderEntity.setCustomerId(orderEntity.getCustomerId());
stockOrderEntity.setUnitIdFk(orderEntity.getCustomerId());
stockOrderEntity.setSourceType(ConstantStatus.ST_SCAN_ADD);
stockOrderEntity.setCorpId(orderEntity.getFromCorpId());
stockOrderEntity.setStatus(ConstantStatus.SORDER_CHECKED);
stockOrderEntity.setCorpName(orderEntity.getFromCorp());
stockOrderService.insertStockOrder(stockOrderEntity);
//删除关联的业务单据详情
StockOrderFilterRequest stockOrderFilterRequest = new StockOrderFilterRequest();
stockOrderFilterRequest.setBillNo(stockOrderEntity.getBillNo());
stockOrderEntity = stockOrderService.findOne(stockOrderFilterRequest);
stockOrderDetailService.deleteByOrderIdFk(stockOrderEntity.getId());
return stockOrderEntity;
}
public void setThridName(BussinessTypeEntity bussinessTypeEntity, StockOrderDetailEntity stockOrderDetailEntity, UdiRelevanceResponse udiRelevanceEntity) {
if (bussinessTypeEntity.getThirdSysFk().equals("thirdId")) {
stockOrderDetailEntity.setProductId(udiRelevanceEntity.getThirdId());
stockOrderDetailEntity.setProductName(udiRelevanceEntity.getThirdName());
} else if (bussinessTypeEntity.getThirdSysFk().equals("thirdId1")) {
stockOrderDetailEntity.setProductId(udiRelevanceEntity.getThirdId1());
stockOrderDetailEntity.setProductName(udiRelevanceEntity.getThirdName1());
} else if (bussinessTypeEntity.getThirdSysFk().equals("thirdId2")) {
stockOrderDetailEntity.setProductId(udiRelevanceEntity.getThirdId2());
stockOrderDetailEntity.setProductName(udiRelevanceEntity.getThirdName2());
} else if (bussinessTypeEntity.getThirdSysFk().equals("thirdId3")) {
stockOrderDetailEntity.setProductId(udiRelevanceEntity.getThirdId3());
stockOrderDetailEntity.setProductName(udiRelevanceEntity.getThirdName3());
} else if (bussinessTypeEntity.getThirdSysFk().equals("thirdId4")) {
stockOrderDetailEntity.setProductId(udiRelevanceEntity.getThirdId4());
stockOrderDetailEntity.setProductName(udiRelevanceEntity.getThirdName4());
}
}
}

@ -4,7 +4,8 @@ server.port=9996
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.jdbc-url=jdbc:mysql://127.0.0.1:3306/spms?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.password=root
#spring.datasource.password=123456
server.servlet.context-path=
logging.level.com.glxp.sale.admin.dao=debug
# \u8DE8\u57DF\u8BBE\u7F6E

@ -191,6 +191,7 @@
<if test="uuid != '' and uuid != null">
AND uuid = #{uuid}
</if>
</where>
</select>

@ -147,6 +147,10 @@
<if test="exportStatus != '' and exportStatus!=null">
and exportStatus = #{exportStatus}
</if>
<if test="unionCtrStatus != '' and unionCtrStatus!=null">
and (contrastStatus = 0 or contrastStatus = 2)
</if>
<if test="signStatus != '' and signStatus!=null">
and signStatus = #{signStatus}
</if>

@ -111,7 +111,7 @@
batchNoId,goodsname,companyname,
batchNo,erpCount,credate,nameCode,productCompany,
coName,authCode,packSpec,packRatio,bhzxxsbzsl,
zxxsbzbhsydysl,orderIdFk,count,reCount,productDate,expireDate)
zxxsbzbhsydysl,orderIdFk,count,reCount,productDate,expireDate,bindStatus,bindRlFk)
values(
#{id},
#{companyid},
@ -128,6 +128,7 @@
#{credate},
#{nameCode},#{productCompany},#{coName},#{authCode},#{packSpec},#{packRatio},
#{bhzxxsbzsl},#{zxxsbzbhsydysl},#{orderIdFk},#{count},#{reCount},#{productDate},#{expireDate}
,#{bindStatus},#{bindRlFk}
)
</insert>
@ -135,7 +136,8 @@
replace INTO io_order_detail(id,
companyid,erpOrderId,iodtlId,inoutId,goodsunit,goodsid,batchNoId,goodsname,companyname,
batchNo,erpCount,credate,nameCode,productCompany,
coName,authCode,packSpec,packRatio,bhzxxsbzsl,zxxsbzbhsydysl,orderIdFk,count,reCount,productDate,expireDate)
coName,authCode,packSpec,packRatio,bhzxxsbzsl,zxxsbzbhsydysl,orderIdFk,count,reCount,productDate,expireDate
,bindStatus,bindRlFk)
values
<foreach collection="erpOrderEntities" item="item" index="index"
separator=",">
@ -155,13 +157,19 @@
#{item.erpCount}, #{item.credate},
#{item.nameCode}, #{item.productCompany}, #{item.coName}, #{item.authCode}, #{item.packSpec},
#{item.packRatio}, #{item.bhzxxsbzsl},
#{item.zxxsbzbhsydysl}, #{item.orderIdFk}, #{item.count},#{item.reCount},#{item.productDate},#{item.expireDate})
#{item.zxxsbzbhsydysl}, #{item.orderIdFk},
#{item.count},#{item.reCount},#{item.productDate},#{item.expireDate},
#{item.bindStatus}, #{item.bindRlFk})
</foreach>
</insert>
<update id="updateErpOrder" parameterType="com.glxp.sale.admin.entity.inout.ErpOrderEntity">
UPDATE io_order_detail
<set>
<if test="goodsid != null">goodsid=#{goodsid},</if>
<if test="goodsname != null">goodsname=#{goodsname},</if>
<if test="bindStatus != null">bindStatus=#{bindStatus},</if>
<if test="bindRlFk != null">bindRlFk=#{bindRlFk},</if>
<if test="count != null">count=#{count},</if>
<if test="reCount != null">reCount=#{reCount},</if>
</set>

Loading…
Cancel
Save