MES:销售订单导入功能完善
master
xs 1 month ago
parent d961e476ef
commit 3452286eca

@ -114,7 +114,6 @@ public class MesImportController extends BaseController {
{
ExcelUtil<MesSaleOrder> util = new ExcelUtil<>(MesSaleOrder.class);
List<MesSaleOrder> mesSaleOrderList = util.importExcel(file.getInputStream());
System.out.println(mesSaleOrderList.toString());
return success(mesSaleOrderService.importSaleOrderData(mesSaleOrderList));
}

@ -207,10 +207,14 @@ public class MesSaleOrder extends BaseEntity {
private String overtimeFlag;
@Excel(name = "项目编码")
private String projectNo;
@Excel(name = "项目名称")
private String projectName;//项目名称
public String getMaterialModel() {
return materialModel;
}
@ -507,6 +511,14 @@ public class MesSaleOrder extends BaseEntity {
this.overtimeFlag = overtimeFlag;
}
public String getProjectNo() {
return projectNo;
}
public void setProjectNo(String projectNo) {
this.projectNo = projectNo;
}
public String getProjectName() {
return projectName;
}

@ -399,46 +399,65 @@ public class MesSaleOrderServiceImpl implements IMesSaleOrderService {
/**
*
*
* @param mesSaleOrderList
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public int importSaleOrderData(List<MesSaleOrder> mesSaleOrderList) {
Date currentDate = new Date();
String nickName = SecurityUtils.getLoginUser().getNickname();
String saleOrderCode = Seq.getNewId(Seq.mesSaleOrderSeqType, Seq.mesSaleOrderSeqCode);
int i = 1;
StringBuilder errorMsg = new StringBuilder();
for (MesSaleOrder mesSaleOrder : mesSaleOrderList) {
String materialCode = mesSaleOrder.getMaterialCode();
if(StringUtils.isEmpty(materialCode)){
throw new ServiceException("物料编码不能为空");
MesBaseMaterialInfo mesBaseMaterialInfo = null;
if (StringUtils.isEmpty(materialCode)) {
errorMsg.append("第").append(i).append("条记录,物料编码不能为空;\n");
} else {
mesBaseMaterialInfo = mesBaseMaterialInfoMapper.selectMesBaseMaterialInfoByMaterialCode(materialCode);
if (mesBaseMaterialInfo == null) {
errorMsg.append("第").append(i).append("条记录,物料编码为").append(materialCode).append(",找不到此物料;\n");
}else{
mesSaleOrder.setMaterialId(mesBaseMaterialInfo.getErpId());
}
}
BigDecimal orderAmount = mesSaleOrder.getOrderAmount();
if(orderAmount==null || orderAmount.compareTo(BigDecimal.ZERO)<=0){
throw new ServiceException("订单数量需大于0");
if (orderAmount == null || orderAmount.compareTo(BigDecimal.ZERO) <= 0) {
errorMsg.append("第").append(i).append("条记录订单数量需大于0\n");
}
MesBaseMaterialInfo mesBaseMaterialInfo = mesBaseMaterialInfoMapper.selectMesBaseMaterialInfoByMaterialCode(materialCode);
String projectName = mesSaleOrder.getProjectName();
if(StringUtils.isNotEmpty(projectName)){
String projectNo = mesSaleOrder.getProjectNo();
if (StringUtils.isEmpty(projectNo)) {
errorMsg.append("第").append(i).append("条记录,项目编码不能为空;\n");
} else {
MesProjectInfo queryProjectInfo = new MesProjectInfo();
queryProjectInfo.setProjectName(projectName);
queryProjectInfo.setProjectNo(projectNo);
List<MesProjectInfo> mesProjectInfoList = mesProjectInfoMapper.selectMesProjectInfoList(queryProjectInfo);
if(mesProjectInfoList!=null && !mesProjectInfoList.isEmpty()){
if (mesProjectInfoList == null || mesProjectInfoList.isEmpty()) {
errorMsg.append("第").append(i).append("条记录,项目编码为").append(projectNo).append(",找不到此项目;\n");
} else {
MesProjectInfo mesProjectInfo = mesProjectInfoList.get(0);
mesSaleOrder.setTondBase(String.valueOf(mesProjectInfo.getErpId()));
}
}
String saleOrderCode = Seq.getNewId(Seq.mesSaleOrderSeqType,Seq.mesSaleOrderSeqCode);
mesSaleOrder.setSaleorderCode(saleOrderCode);
mesSaleOrder.setMaterialId(mesBaseMaterialInfo.getErpId());
mesSaleOrder.setCreateTime(currentDate);
// mesSaleOrder.setErpModifyDate(currentDate);
mesSaleOrder.setCreateBy(nickName);
mesSaleOrder.setSaleOrderClassfication(MesConstants.MES_SALE_ORDER_CLASSFICATION_MES);
mesSaleOrderMapper.insertMesSaleOrder(mesSaleOrder);
i++;
}
if (errorMsg.length() > 0) {
throw new ServiceException(errorMsg.toString());
}
for (MesSaleOrder mesSaleOrder : mesSaleOrderList) {
mesSaleOrderMapper.insertMesSaleOrder(mesSaleOrder);
}
return 1;

@ -257,6 +257,7 @@
mso.end_date,
mso.complete_date,
mso.sale_order_classfication,
mso.create_time,
mpi.project_name
from mes_sale_order mso left join mes_base_material_info mbmi on
((mso.material_id = mbmi.erp_id and (mso.sale_order_classfication='1' or mso.sale_order_classfication='3')) or (mso.material_id = mbmi.material_id and mso.sale_order_classfication='2'))

@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -49,6 +50,14 @@ public class FifthWmsBoardServiceImpl implements FifthWmsBorderService {
List<WmsRawOutstock> list1 = wmsRawOutstockMapper.locationCount();//辅料近一个月出库数量
List<WmsProductInstock> list2 = wmsProductInstockMapper.locationCount();
List<WmsProductOutstock> list3 = wmsProductOutstockMapper.locationCount();
list.remove(null);
list.removeAll(Collections.singleton(null));
list1.remove(null);
list1.removeAll(Collections.singleton(null));
list2.remove(null);
list2.removeAll(Collections.singleton(null));
list3.remove(null);
list3.removeAll(Collections.singleton(null));
if(list!=null && !list.isEmpty()) {
for (WmsProductInstock wmsProductInstock : list) {
if (wmsProductInstock.getWarehouseId() == 511) {

@ -58,6 +58,7 @@ public class FourthWmsBoardService implements IFourthWmsBoardService {
/**
*
*
* @return
*/
@Override
@ -70,21 +71,24 @@ public class FourthWmsBoardService implements IFourthWmsBoardService {
/**
*
*
* @return
*/
@Override
public JSONObject getFourthFloorProductInOutstockInfo(){
public JSONObject getFourthFloorProductInOutstockInfo() {
JSONObject resultJson = new JSONObject();
//四楼成品库近一个月的成品入库数量
WmsProductInstock wmsProductInstock = wmsProductInstockMapper.fourthFloorLatestMonthProductInstock();
//四楼成品库近一个月的成品出库数量
WmsProductOutstock wmsProductOutstock = wmsProductOutstockMapper.fourthFloorLatestMonthProductOutstock();
BigDecimal productInstockAmount = wmsProductInstock.getInstockAmount().setScale(0, RoundingMode.HALF_UP);
BigDecimal productOutStockAmount = wmsProductOutstock.getOutstockQty().setScale(0, RoundingMode.HALF_UP);
BigDecimal productInstockAmount = wmsProductInstock == null ? BigDecimal.ZERO
: wmsProductInstock.getInstockAmount().setScale(0, RoundingMode.HALF_UP);
BigDecimal productOutStockAmount = wmsProductOutstock == null ? BigDecimal.ZERO
: wmsProductOutstock.getOutstockQty().setScale(0, RoundingMode.HALF_UP);
resultJson.put("productInstockAmount",productInstockAmount);
resultJson.put("productOutStockAmount",productOutStockAmount);
resultJson.put("productInstockAmount", productInstockAmount);
resultJson.put("productOutStockAmount", productOutStockAmount);
return resultJson;
}
@ -92,11 +96,12 @@ public class FourthWmsBoardService implements IFourthWmsBoardService {
/**
*
*
* @param queryStockTotal
* @return
*/
@Override
public List<WmsStockTotal> getRawStockTotals(WmsStockTotal queryStockTotal){
public List<WmsStockTotal> getRawStockTotals(WmsStockTotal queryStockTotal) {
return wmsStockTotalMapper.selectWmsStockTotalList(queryStockTotal);
}

@ -227,9 +227,9 @@
<span>{{ parseTime(scope.row.approveDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="ERP最后修改日期" align="center" prop="erpModifyDate" v-if="columns[17].visible">
<el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[25].visible">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.erpModifyDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
@ -245,7 +245,7 @@
icon="el-icon-edit"
@click="handleBindingPurchase(scope.row)"
v-hasPermi="['mes:saleOrder:bind']"
v-if="scope.row.saleOrderClassfication==='1'"
v-if="scope.row.saleOrderClassfication==='1' || scope.row.saleOrderClassfication==='3'"
>绑定</el-button>
<el-button
size="mini"
@ -261,7 +261,7 @@
size="mini"
@click="handleOrderBinds(scope.row)"
v-hasPermi="['mes:saleOrder:bind']"
v-if="scope.row.saleOrderClassfication==='1'"
v-if="scope.row.saleOrderClassfication==='1' || scope.row.saleOrderClassfication==='3'"
>已绑定
</el-button>
<el-button
@ -270,7 +270,7 @@
icon="el-icon-edit"
@click="handleMaterialUsed(scope.row)"
v-hasPermi="['mes:saleOrder:used']"
v-if="scope.row.saleOrderClassfication==='1'"
v-if="scope.row.saleOrderClassfication==='1' || scope.row.saleOrderClassfication==='3'"
>物料使用</el-button>
</template>
@ -549,8 +549,8 @@ export default {
{ key: 13, label: `完成数量`, visible: false },
{ key: 14, label: `已发布数量`, visible: false },
{ key: 15, label: `是否已下达计划`, visible: false },
{ key: 16, label: `审核日期`, visible: true },
{ key: 17, label: `ERP最后修改日期`, visible: true },
{ key: 16, label: `审核日期`, visible: false },
{ key: 17, label: `ERP最后修改日期`, visible: false },
{ key: 18, label: `计划交货日期`, visible: true },
{ key: 19, label: `计划开始日期`, visible: false },
{ key: 20, label: `计划结束日期`, visible: false },
@ -558,7 +558,7 @@ export default {
{ key: 22, label: `是否标识1-是0-否`, visible: false },
{ key: 23, label: `备注`, visible: false },
{ key: 24, label: `创建人`, visible: false },
{ key: 25, label: `创建时间`, visible: false },
{ key: 25, label: `创建时间`, visible: true },
{ key: 26, label: `更新人`, visible: false },
{ key: 27, label: `更新时间`, visible: false },
],

Loading…
Cancel
Save