change - 采购申请单导入、计量单位同步ERP

master
yinq
parent 3aa4b371d9
commit cb91161d1e

@ -125,6 +125,17 @@ public class MesBaseMaterialInfo extends BaseEntity
private Long warehouseId;
/** 采购计价单位;对应FPurchasePriceUnitId */
private Long purchasePriceUnitId;
public Long getPurchasePriceUnitId() {
return purchasePriceUnitId;
}
public void setPurchasePriceUnitId(Long purchasePriceUnitId) {
this.purchasePriceUnitId = purchasePriceUnitId;
}
public String getMaterialTypeName() {
return materialTypeName;
}

@ -0,0 +1,136 @@
package com.hw.jindie.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hw.common.core.annotation.Excel;
import com.hw.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
/**
* mes_base_unit_info
*
* @author Yinq
* @date 2024-07-24
*/
public class MesBaseUnitInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private Long unitId;
/**
* ;FNumber
*/
@Excel(name = "供应商编号;对应FNumber")
private String unitCode;
/**
* ;FName
*/
@Excel(name = "供应商名称;对应FName")
private String unitName;
/**
* erp;FUnitId
*/
@Excel(name = "erp的主键;对应FUnitId")
private Long erpId;
/**
* 1-0-
*/
@Excel(name = "单位状态1-启用0-停用")
private String unitStatus;
/**
* ;FAuditDate
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审核日期;对应FAuditDate", width = 30, dateFormat = "yyyy-MM-dd")
private Date auditDate;
/**
* erp;FModifyDate
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "erp最后更新时间;对应FModifyDate", width = 30, dateFormat = "yyyy-MM-dd")
private Date erpModifyDate;
public void setUnitId(Long unitId) {
this.unitId = unitId;
}
public Long getUnitId() {
return unitId;
}
public void setUnitCode(String unitCode) {
this.unitCode = unitCode;
}
public String getUnitCode() {
return unitCode;
}
public void setUnitName(String unitName) {
this.unitName = unitName;
}
public String getUnitName() {
return unitName;
}
public void setErpId(Long erpId) {
this.erpId = erpId;
}
public Long getErpId() {
return erpId;
}
public void setUnitStatus(String unitStatus) {
this.unitStatus = unitStatus;
}
public String getUnitStatus() {
return unitStatus;
}
public void setAuditDate(Date auditDate) {
this.auditDate = auditDate;
}
public Date getAuditDate() {
return auditDate;
}
public void setErpModifyDate(Date erpModifyDate) {
this.erpModifyDate = erpModifyDate;
}
public Date getErpModifyDate() {
return erpModifyDate;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("unitId", getUnitId())
.append("unitCode", getUnitCode())
.append("unitName", getUnitName())
.append("erpId", getErpId())
.append("unitStatus", getUnitStatus())
.append("remark", getRemark())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("auditDate", getAuditDate())
.append("erpModifyDate", getErpModifyDate())
.toString();
}
}

@ -0,0 +1,63 @@
package com.hw.jindie.mapper;
import com.hw.jindie.domain.MesBaseUnitInfo;
import java.util.List;
/**
* Mapper
*
* @author Yinq
* @date 2024-07-24
*/
public interface MesBaseUnitInfoMapper {
/**
*
*
* @param unitId
* @return
*/
public MesBaseUnitInfo selectMesBaseUnitInfoByUnitId(Long unitId);
public MesBaseUnitInfo selectMesBaseUnitInfoByErpId(Long erpId);
/**
*
*
* @param mesBaseUnitInfo
* @return
*/
public List<MesBaseUnitInfo> selectMesBaseUnitInfoList(MesBaseUnitInfo mesBaseUnitInfo);
/**
*
*
* @param mesBaseUnitInfo
* @return
*/
public int insertMesBaseUnitInfo(MesBaseUnitInfo mesBaseUnitInfo);
/**
*
*
* @param mesBaseUnitInfo
* @return
*/
public int updateMesBaseUnitInfo(MesBaseUnitInfo mesBaseUnitInfo);
/**
*
*
* @param unitId
* @return
*/
public int deleteMesBaseUnitInfoByUnitId(Long unitId);
/**
*
*
* @param unitIds
* @return
*/
public int deleteMesBaseUnitInfoByUnitIds(Long[] unitIds);
}

@ -45,6 +45,7 @@ public class KingdeeErpService {
JSONObject FEntity = new JSONObject();
String FMaterialId = (String) objectParams.get("FMaterialId");//物料编码
String FUnitId = (String) objectParams.get("FUnitId");//单位
String FPriceUnitId = (String) objectParams.get("FPriceUnitId");//计价单位
String FMaterialDesc = (String) objectParams.get("FMaterialDesc");//物料说明
Double FReqQty = (Double) objectParams.get("FReqQty");//采购数量
Double FTAXPRICE = (Double) objectParams.get("FTAXPRICE");//含税单价
@ -60,15 +61,17 @@ public class KingdeeErpService {
JSONObject FUnitIdObject = new JSONObject();
FUnitIdObject.put("FNumber", FUnitId);
FEntity.put("FUnitId", FUnitIdObject); //申请单位(必填项)
FEntity.put("FPriceUnitId", FUnitIdObject); //计价单位(必填项)
JSONObject FPriceUnitIdObject = new JSONObject();
FPriceUnitIdObject.put("FNumber", FPriceUnitId);
FEntity.put("FPriceUnitId", FPriceUnitIdObject); //计价单位(必填项)
FEntity.put("FREQSTOCKUNITID", FUnitIdObject); //库存单位(必填项)
FEntity.put("FReqQty", FReqQty); //申请数量
FEntity.put("FMaterialDesc", FMaterialDesc); //物料说明
// FEntity.put("FMaterialDesc", FMaterialDesc); //物料说明
// FEntity.put("FReceiveOrgId", KingdeeConfig.getFApplicationOrgId()); //收料组织
// FEntity.put("FApproveQty", FReqQty); //批准数量
// FEntity.put("FEvaluatePrice", 0.0); //单价
FEntity.put("FTAXPRICE", FTAXPRICE); //含税单价
// FEntity.put("FTAXPRICE", FTAXPRICE); //含税单价
// FEntity.put("FTAXRATE", 0.0); //税率%
// FEntity.put("FPriceUnitQty", FReqQty); //计价数量
// FEntity.put("FREQSTOCKQTY", FReqQty); //库存单位数量

@ -36,6 +36,8 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
private MesSaleOrderMapper mesSaleOrderMapper;
@Autowired
private MesPurchaseOrderMapper mesPurchaseOrderMapper;
@Autowired
private MesBaseUnitInfoMapper mesBaseUnitInfoMapper;
private static final int limit = 100;
@ -82,16 +84,6 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
}
System.out.println(queryJson.toString());
// if (StringUtils.isNotEmpty(beginTime) && StringUtils.isNotEmpty(endTime)) {
// String filterString = "FCreateDate >'" + beginTime + "' AND '" + endTime + "' >FCreateDate";
// queryJson.put("FilterString", filterString);
// }
// System.out.println(queryJson.toString());
// "FieldKeys": "FNumber,FName,FBaseUnitId,FSpecification,FNETWEIGHT,FGROSSWEIGHT,FCreateDate,FModifyDate,FApproveDate",
// "FilterString": "FDocumentStatus='C' AND FCreateDate>'2022-01-01' and FMaterialGroup.FNUMBER IN ('28')",
String result = api.billQuery(queryJson.toString());
if (StringUtils.isEmpty(result)) {
return 1;
@ -102,84 +94,73 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
return 1;
}
// List<MesBaseSupplierInfo> toInsertSupplierInfoList = new ArrayList<>();
// List<MesBaseSupplierInfo> toUpdateSupplierInfoList = new ArrayList<>();
// Date currentDate = new Date();
// for (int i = 0; i < resultArray.size(); i++) {
// try {
// JSONObject resultObject = (JSONObject) resultArray.get(i);
// MesBaseSupplierInfo mesBaseSupplierInfo = new MesBaseSupplierInfo();
// //供应商编号
// String FNumber = resultObject.getString("FNumber");
// //供应商名称
// String FName = resultObject.getString("FName");
// //erp主键id
// Long erpId = resultObject.getLong("FSupplierId");
// //创建时间
// String FCreateDate = resultObject.getString("FCreateDate");
// //更新时间
// String FModifyDate = resultObject.getString("FModifyDate");
// //审核日期
// String FAuditDate = resultObject.getString("FAuditDate");
//
// mesBaseSupplierInfo.setErpId(erpId);
// mesBaseSupplierInfo.setSupplierCode(FNumber);
// mesBaseSupplierInfo.setSupplierName(FName);
//
// //供应商状态
// mesBaseSupplierInfo.setSupplierStatus("1");
// mesBaseSupplierInfo.setUpdateTime(currentDate);
//
// if (StringUtils.isNotEmpty(FCreateDate)) {
// mesBaseSupplierInfo.setCreateTime(conversionERPTime(FCreateDate));
// }
// if (StringUtils.isNotEmpty(FModifyDate)) {
// mesBaseSupplierInfo.setErpModifyDate(conversionERPTime(FModifyDate));
// }
// if (StringUtils.isNotEmpty(FAuditDate)) {
// mesBaseSupplierInfo.setAuditDate(conversionERPTime(FAuditDate));
// }
//
// MesBaseSupplierInfo existedMesBaseSupplierInfo = mesBaseSupplierInfoMapper.selectMesBaseSupplierInfoByErpId(erpId);
//
// if (existedMesBaseSupplierInfo != null) {
// mesBaseSupplierInfo.setSupplierId(existedMesBaseSupplierInfo.getSupplierId());
// toUpdateSupplierInfoList.add(mesBaseSupplierInfo);
// } else {
// toInsertSupplierInfoList.add(mesBaseSupplierInfo);
// }
//
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
//
//
// if (!toInsertSupplierInfoList.isEmpty()) {
// mesBaseSupplierInfoMapper.batchMesBaseSupplierInfo(toInsertSupplierInfoList);
// }
// if (!toUpdateSupplierInfoList.isEmpty()) {
// for (MesBaseSupplierInfo toUpdatedSupplierInfo : toUpdateSupplierInfoList) {
// mesBaseSupplierInfoMapper.updateMesBaseSupplierInfo(toUpdatedSupplierInfo);
// }
// }
List<MesBaseUnitInfo> toInsertSupplierInfoList = new ArrayList<>();
List<MesBaseUnitInfo> toUpdateSupplierInfoList = new ArrayList<>();
Date currentDate = new Date();
for (int i = 0; i < resultArray.size(); i++) {
try {
JSONObject resultObject = (JSONObject) resultArray.get(i);
MesBaseUnitInfo baseUnitInfo = new MesBaseUnitInfo();
//主键
Long FUnitId = resultObject.getLong("FUnitId");
//编号
String FNumber = resultObject.getString("FNumber");
//描述
String FName = resultObject.getString("FName");
//创建时间
String FCreateDate = resultObject.getString("FCreateDate");
//更新时间
String FModifyDate = resultObject.getString("FModifyDate");
baseUnitInfo.setUnitCode(FNumber);
baseUnitInfo.setErpId(FUnitId);
baseUnitInfo.setUnitName(FName);
baseUnitInfo.setUnitStatus("1");
baseUnitInfo.setUpdateTime(currentDate);
if (StringUtils.isNotEmpty(FCreateDate)) {
baseUnitInfo.setCreateTime(conversionERPTime(FCreateDate));
}
if (StringUtils.isNotEmpty(FModifyDate)) {
baseUnitInfo.setErpModifyDate(conversionERPTime(FModifyDate));
}
MesBaseUnitInfo existedUnitInfo = mesBaseUnitInfoMapper.selectMesBaseUnitInfoByErpId(FUnitId);
if (existedUnitInfo != null) {
baseUnitInfo.setUnitId(existedUnitInfo.getUnitId());
toUpdateSupplierInfoList.add(baseUnitInfo);
} else {
toInsertSupplierInfoList.add(baseUnitInfo);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if (!toInsertSupplierInfoList.isEmpty()) {
for (MesBaseUnitInfo mesBaseUnitInfo : toInsertSupplierInfoList) {
mesBaseUnitInfoMapper.insertMesBaseUnitInfo(mesBaseUnitInfo);
}
}
if (!toUpdateSupplierInfoList.isEmpty()) {
for (MesBaseUnitInfo toUpdatedUnitInfo : toUpdateSupplierInfoList) {
mesBaseUnitInfoMapper.updateMesBaseUnitInfo(toUpdatedUnitInfo);
}
}
System.out.println("size:" + resultArray.size());
System.out.println(resultArray);
//如果返回的数组的数量等于分页数量,则继续获取下一页数据
// if (resultArray.size() == limit) {
//// System.out.println(startRow);
// //通过递归同步所有供应商,测试先不用
// int i = syncSupplierInfoFromErp(startRow + resultArray.size(), maxErpModifyDate);
//// return i;
// return 1;
// } else {
// //为空时的总行数
// return startRow + resultArray.size();
// }
return 0;
if (resultArray.size() == limit) {
//通过递归同步所有供应商,测试先不用
int i = syncUnitInfoFromErp(startRow + resultArray.size(), maxErpModifyDate);
return 1;
} else {
//为空时的总行数
return startRow + resultArray.size();
}
}

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hw.jindie.mapper.MesBaseUnitInfoMapper">
<resultMap type="MesBaseUnitInfo" id="MesBaseUnitInfoResult">
<result property="unitId" column="unit_id"/>
<result property="unitCode" column="unit_code"/>
<result property="unitName" column="unit_name"/>
<result property="erpId" column="erp_id"/>
<result property="unitStatus" column="unit_status"/>
<result property="remark" column="remark"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="auditDate" column="audit_date"/>
<result property="erpModifyDate" column="erp_modify_date"/>
</resultMap>
<sql id="selectMesBaseUnitInfoVo">
select unit_id,
unit_code,
unit_name,
erp_id,
unit_status,
remark,
create_by,
create_time,
update_by,
update_time,
audit_date,
erp_modify_date
from mes_base_unit_info
</sql>
<select id="selectMesBaseUnitInfoList" parameterType="MesBaseUnitInfo" resultMap="MesBaseUnitInfoResult">
<include refid="selectMesBaseUnitInfoVo"/>
<where>
<if test="unitCode != null and unitCode != ''">and unit_code = #{unitCode}</if>
<if test="unitName != null and unitName != ''">and unit_name like concat('%', #{unitName}, '%')</if>
<if test="erpId != null ">and erp_id = #{erpId}</if>
<if test="unitStatus != null and unitStatus != ''">and unit_status = #{unitStatus}</if>
<if test="auditDate != null ">and audit_date = #{auditDate}</if>
<if test="erpModifyDate != null ">and erp_modify_date = #{erpModifyDate}</if>
</where>
</select>
<select id="selectMesBaseUnitInfoByUnitId" parameterType="Long" resultMap="MesBaseUnitInfoResult">
<include refid="selectMesBaseUnitInfoVo"/>
where unit_id = #{unitId}
</select>
<select id="selectMesBaseUnitInfoByErpId" parameterType="Long" resultMap="MesBaseUnitInfoResult">
<include refid="selectMesBaseUnitInfoVo"/>
where erp_id = #{erpId}
</select>
<insert id="insertMesBaseUnitInfo" parameterType="MesBaseUnitInfo" useGeneratedKeys="true" keyProperty="unitId">
insert into mes_base_unit_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="unitCode != null">unit_code,</if>
<if test="unitName != null and unitName != ''">unit_name,</if>
<if test="erpId != null">erp_id,</if>
<if test="unitStatus != null and unitStatus != ''">unit_status,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="auditDate != null">audit_date,</if>
<if test="erpModifyDate != null">erp_modify_date,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="unitCode != null">#{unitCode},</if>
<if test="unitName != null and unitName != ''">#{unitName},</if>
<if test="erpId != null">#{erpId},</if>
<if test="unitStatus != null and unitStatus != ''">#{unitStatus},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="auditDate != null">#{auditDate},</if>
<if test="erpModifyDate != null">#{erpModifyDate},</if>
</trim>
</insert>
<update id="updateMesBaseUnitInfo" parameterType="MesBaseUnitInfo">
update mes_base_unit_info
<trim prefix="SET" suffixOverrides=",">
<if test="unitCode != null">unit_code = #{unitCode},</if>
<if test="unitName != null and unitName != ''">unit_name = #{unitName},</if>
<if test="erpId != null">erp_id = #{erpId},</if>
<if test="unitStatus != null and unitStatus != ''">unit_status = #{unitStatus},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="auditDate != null">audit_date = #{auditDate},</if>
<if test="erpModifyDate != null">erp_modify_date = #{erpModifyDate},</if>
</trim>
where unit_id = #{unitId}
</update>
<delete id="deleteMesBaseUnitInfoByUnitId" parameterType="Long">
delete
from mes_base_unit_info
where unit_id = #{unitId}
</delete>
<delete id="deleteMesBaseUnitInfoByUnitIds" parameterType="String">
delete from mes_base_unit_info where unit_id in
<foreach item="unitId" collection="array" open="(" separator="," close=")">
#{unitId}
</foreach>
</delete>
</mapper>

@ -0,0 +1,99 @@
package com.hw.mes.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.hw.common.log.annotation.Log;
import com.hw.common.log.enums.BusinessType;
import com.hw.common.security.annotation.RequiresPermissions;
import com.hw.mes.domain.MesBaseUnitInfo;
import com.hw.mes.service.IMesBaseUnitInfoService;
import com.hw.common.core.web.controller.BaseController;
import com.hw.common.core.web.domain.AjaxResult;
import com.hw.common.core.utils.poi.ExcelUtil;
import com.hw.common.core.web.page.TableDataInfo;
/**
* Controller
*
* @author Yinq
* @date 2024-07-24
*/
@RestController
@RequestMapping("/mesBaseUnitInfo")
public class MesBaseUnitInfoController extends BaseController {
@Autowired
private IMesBaseUnitInfoService mesBaseUnitInfoService;
/**
*
*/
@RequiresPermissions("mes:mesBaseUnitInfo:list")
@GetMapping("/list")
public TableDataInfo list(MesBaseUnitInfo mesBaseUnitInfo) {
startPage();
List<MesBaseUnitInfo> list = mesBaseUnitInfoService.selectMesBaseUnitInfoList(mesBaseUnitInfo);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("mes:mesBaseUnitInfo:export")
@Log(title = "单位信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, MesBaseUnitInfo mesBaseUnitInfo) {
List<MesBaseUnitInfo> list = mesBaseUnitInfoService.selectMesBaseUnitInfoList(mesBaseUnitInfo);
ExcelUtil<MesBaseUnitInfo> util = new ExcelUtil<MesBaseUnitInfo>(MesBaseUnitInfo.class);
util.exportExcel(response, list, "单位信息数据");
}
/**
*
*/
@RequiresPermissions("mes:mesBaseUnitInfo:query")
@GetMapping(value = "/{unitId}")
public AjaxResult getInfo(@PathVariable("unitId") Long unitId) {
return success(mesBaseUnitInfoService.selectMesBaseUnitInfoByUnitId(unitId));
}
/**
*
*/
@RequiresPermissions("mes:mesBaseUnitInfo:add")
@Log(title = "单位信息", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody MesBaseUnitInfo mesBaseUnitInfo) {
return toAjax(mesBaseUnitInfoService.insertMesBaseUnitInfo(mesBaseUnitInfo));
}
/**
*
*/
@RequiresPermissions("mes:mesBaseUnitInfo:edit")
@Log(title = "单位信息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody MesBaseUnitInfo mesBaseUnitInfo) {
return toAjax(mesBaseUnitInfoService.updateMesBaseUnitInfo(mesBaseUnitInfo));
}
/**
*
*/
@RequiresPermissions("mes:mesBaseUnitInfo:remove")
@Log(title = "单位信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{unitIds}")
public AjaxResult remove(@PathVariable Long[] unitIds) {
return toAjax(mesBaseUnitInfoService.deleteMesBaseUnitInfoByUnitIds(unitIds));
}
}

@ -0,0 +1,136 @@
package com.hw.mes.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hw.common.core.annotation.Excel;
import com.hw.common.core.web.domain.BaseEntity;
/**
* mes_base_unit_info
*
* @author Yinq
* @date 2024-07-24
*/
public class MesBaseUnitInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private Long unitId;
/**
* ;FNumber
*/
@Excel(name = "供应商编号;对应FNumber")
private String unitCode;
/**
* ;FName
*/
@Excel(name = "供应商名称;对应FName")
private String unitName;
/**
* erp;FUnitId
*/
@Excel(name = "erp的主键;对应FUnitId")
private Long erpId;
/**
* 1-0-
*/
@Excel(name = "单位状态1-启用0-停用")
private String unitStatus;
/**
* ;FAuditDate
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审核日期;对应FAuditDate", width = 30, dateFormat = "yyyy-MM-dd")
private Date auditDate;
/**
* erp;FModifyDate
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "erp最后更新时间;对应FModifyDate", width = 30, dateFormat = "yyyy-MM-dd")
private Date erpModifyDate;
public void setUnitId(Long unitId) {
this.unitId = unitId;
}
public Long getUnitId() {
return unitId;
}
public void setUnitCode(String unitCode) {
this.unitCode = unitCode;
}
public String getUnitCode() {
return unitCode;
}
public void setUnitName(String unitName) {
this.unitName = unitName;
}
public String getUnitName() {
return unitName;
}
public void setErpId(Long erpId) {
this.erpId = erpId;
}
public Long getErpId() {
return erpId;
}
public void setUnitStatus(String unitStatus) {
this.unitStatus = unitStatus;
}
public String getUnitStatus() {
return unitStatus;
}
public void setAuditDate(Date auditDate) {
this.auditDate = auditDate;
}
public Date getAuditDate() {
return auditDate;
}
public void setErpModifyDate(Date erpModifyDate) {
this.erpModifyDate = erpModifyDate;
}
public Date getErpModifyDate() {
return erpModifyDate;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("unitId", getUnitId())
.append("unitCode", getUnitCode())
.append("unitName", getUnitName())
.append("erpId", getErpId())
.append("unitStatus", getUnitStatus())
.append("remark", getRemark())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("auditDate", getAuditDate())
.append("erpModifyDate", getErpModifyDate())
.toString();
}
}

@ -0,0 +1,62 @@
package com.hw.mes.mapper;
import java.util.List;
import com.hw.mes.domain.MesBaseUnitInfo;
/**
* Mapper
*
* @author Yinq
* @date 2024-07-24
*/
public interface MesBaseUnitInfoMapper {
/**
*
*
* @param unitId
* @return
*/
public MesBaseUnitInfo selectMesBaseUnitInfoByUnitId(Long unitId);
public MesBaseUnitInfo selectMesBaseUnitInfoByErpId(Long erpId);
/**
*
*
* @param mesBaseUnitInfo
* @return
*/
public List<MesBaseUnitInfo> selectMesBaseUnitInfoList(MesBaseUnitInfo mesBaseUnitInfo);
/**
*
*
* @param mesBaseUnitInfo
* @return
*/
public int insertMesBaseUnitInfo(MesBaseUnitInfo mesBaseUnitInfo);
/**
*
*
* @param mesBaseUnitInfo
* @return
*/
public int updateMesBaseUnitInfo(MesBaseUnitInfo mesBaseUnitInfo);
/**
*
*
* @param unitId
* @return
*/
public int deleteMesBaseUnitInfoByUnitId(Long unitId);
/**
*
*
* @param unitIds
* @return
*/
public int deleteMesBaseUnitInfoByUnitIds(Long[] unitIds);
}

@ -0,0 +1,61 @@
package com.hw.mes.service;
import java.util.List;
import com.hw.mes.domain.MesBaseUnitInfo;
/**
* Service
*
* @author Yinq
* @date 2024-07-24
*/
public interface IMesBaseUnitInfoService {
/**
*
*
* @param unitId
* @return
*/
public MesBaseUnitInfo selectMesBaseUnitInfoByUnitId(Long unitId);
/**
*
*
* @param mesBaseUnitInfo
* @return
*/
public List<MesBaseUnitInfo> selectMesBaseUnitInfoList(MesBaseUnitInfo mesBaseUnitInfo);
/**
*
*
* @param mesBaseUnitInfo
* @return
*/
public int insertMesBaseUnitInfo(MesBaseUnitInfo mesBaseUnitInfo);
/**
*
*
* @param mesBaseUnitInfo
* @return
*/
public int updateMesBaseUnitInfo(MesBaseUnitInfo mesBaseUnitInfo);
/**
*
*
* @param unitIds
* @return
*/
public int deleteMesBaseUnitInfoByUnitIds(Long[] unitIds);
/**
*
*
* @param unitId
* @return
*/
public int deleteMesBaseUnitInfoByUnitId(Long unitId);
}

@ -0,0 +1,90 @@
package com.hw.mes.service.impl;
import java.util.List;
import com.hw.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hw.mes.mapper.MesBaseUnitInfoMapper;
import com.hw.mes.domain.MesBaseUnitInfo;
import com.hw.mes.service.IMesBaseUnitInfoService;
/**
* Service
*
* @author Yinq
* @date 2024-07-24
*/
@Service
public class MesBaseUnitInfoServiceImpl implements IMesBaseUnitInfoService {
@Autowired
private MesBaseUnitInfoMapper mesBaseUnitInfoMapper;
/**
*
*
* @param unitId
* @return
*/
@Override
public MesBaseUnitInfo selectMesBaseUnitInfoByUnitId(Long unitId) {
return mesBaseUnitInfoMapper.selectMesBaseUnitInfoByUnitId(unitId);
}
/**
*
*
* @param mesBaseUnitInfo
* @return
*/
@Override
public List<MesBaseUnitInfo> selectMesBaseUnitInfoList(MesBaseUnitInfo mesBaseUnitInfo) {
return mesBaseUnitInfoMapper.selectMesBaseUnitInfoList(mesBaseUnitInfo);
}
/**
*
*
* @param mesBaseUnitInfo
* @return
*/
@Override
public int insertMesBaseUnitInfo(MesBaseUnitInfo mesBaseUnitInfo) {
mesBaseUnitInfo.setCreateTime(DateUtils.getNowDate());
return mesBaseUnitInfoMapper.insertMesBaseUnitInfo(mesBaseUnitInfo);
}
/**
*
*
* @param mesBaseUnitInfo
* @return
*/
@Override
public int updateMesBaseUnitInfo(MesBaseUnitInfo mesBaseUnitInfo) {
mesBaseUnitInfo.setUpdateTime(DateUtils.getNowDate());
return mesBaseUnitInfoMapper.updateMesBaseUnitInfo(mesBaseUnitInfo);
}
/**
*
*
* @param unitIds
* @return
*/
@Override
public int deleteMesBaseUnitInfoByUnitIds(Long[] unitIds) {
return mesBaseUnitInfoMapper.deleteMesBaseUnitInfoByUnitIds(unitIds);
}
/**
*
*
* @param unitId
* @return
*/
@Override
public int deleteMesBaseUnitInfoByUnitId(Long unitId) {
return mesBaseUnitInfoMapper.deleteMesBaseUnitInfoByUnitId(unitId);
}
}

@ -11,17 +11,17 @@ import com.hw.common.security.utils.SecurityUtils;
import com.hw.jindie.api.RemoteJindieService;
import com.hw.mes.api.RemoteMesService;
import com.hw.mes.api.domain.MesBaseMaterialInfo;
import com.hw.mes.domain.MesBaseUnitInfo;
import com.hw.mes.domain.MesPurchaseRequisitionTemplate;
import com.hw.mes.mapper.MesBaseUnitInfoMapper;
import com.hw.mes.service.IMesBaseMaterialInfoService;
import com.hw.mes.service.IMesImportService;
import com.hw.system.api.domain.SysUser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
@ -36,6 +36,9 @@ public class MesImportImpl implements IMesImportService {
@Autowired
private IMesBaseMaterialInfoService materialInfoService;
@Autowired
private MesBaseUnitInfoMapper mesBaseUnitInfoMapper;
@Autowired
private RemoteJindieService remoteJindieService;
@ -83,7 +86,10 @@ public class MesImportImpl implements IMesImportService {
JSONObject data = new JSONObject();
data.put("FMaterialId", findMaterialInfo.getMaterialCode());
data.put("FMaterialDesc", findMaterialInfo.getMaterialSpec());
data.put("FUnitId", purchaseRequisitionTemplate.getUnit());
MesBaseUnitInfo baseUnitInfo = mesBaseUnitInfoMapper.selectMesBaseUnitInfoByErpId(findMaterialInfo.getMaterialUnitId());
data.put("FUnitId", baseUnitInfo.getUnitCode());
MesBaseUnitInfo priceUnitIdUnitInfo = mesBaseUnitInfoMapper.selectMesBaseUnitInfoByErpId(findMaterialInfo.getPurchasePriceUnitId());
data.put("FPriceUnitId", priceUnitIdUnitInfo.getUnitCode());
data.put("FReqQty", purchaseRequisitionTemplate.getAmount());
data.put("FTAXPRICE", purchaseRequisitionTemplate.getTaxUnitPrice());
String params = data.toJSONString();

@ -37,6 +37,7 @@
<result property="approveDate" column="approve_date"/>
<result property="erpModifyDate" column="erp_modify_date"/>
<result property="warehouseId" column="warehouse_id"/>
<result property="purchasePriceUnitId" column="purchase_price_unit_id"/>
</resultMap>
<sql id="selectMesBaseMaterialInfoVo">
@ -59,6 +60,7 @@
bmi.gross_weight,
bmi.factory_id,
bmi.create_org_id,
bmi.purchase_price_unit_id,
bmi.use_org_id,
bmi.prodline_id,
bmi.active_flag,

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hw.mes.mapper.MesBaseUnitInfoMapper">
<resultMap type="MesBaseUnitInfo" id="MesBaseUnitInfoResult">
<result property="unitId" column="unit_id"/>
<result property="unitCode" column="unit_code"/>
<result property="unitName" column="unit_name"/>
<result property="erpId" column="erp_id"/>
<result property="unitStatus" column="unit_status"/>
<result property="remark" column="remark"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="auditDate" column="audit_date"/>
<result property="erpModifyDate" column="erp_modify_date"/>
</resultMap>
<sql id="selectMesBaseUnitInfoVo">
select unit_id,
unit_code,
unit_name,
erp_id,
unit_status,
remark,
create_by,
create_time,
update_by,
update_time,
audit_date,
erp_modify_date
from mes_base_unit_info
</sql>
<select id="selectMesBaseUnitInfoList" parameterType="MesBaseUnitInfo" resultMap="MesBaseUnitInfoResult">
<include refid="selectMesBaseUnitInfoVo"/>
<where>
<if test="unitCode != null and unitCode != ''">and unit_code = #{unitCode}</if>
<if test="unitName != null and unitName != ''">and unit_name like concat('%', #{unitName}, '%')</if>
<if test="erpId != null ">and erp_id = #{erpId}</if>
<if test="unitStatus != null and unitStatus != ''">and unit_status = #{unitStatus}</if>
<if test="auditDate != null ">and audit_date = #{auditDate}</if>
<if test="erpModifyDate != null ">and erp_modify_date = #{erpModifyDate}</if>
</where>
</select>
<select id="selectMesBaseUnitInfoByUnitId" parameterType="Long" resultMap="MesBaseUnitInfoResult">
<include refid="selectMesBaseUnitInfoVo"/>
where unit_id = #{unitId}
</select>
<select id="selectMesBaseUnitInfoByErpId" parameterType="Long" resultMap="MesBaseUnitInfoResult">
<include refid="selectMesBaseUnitInfoVo"/>
where erp_id = #{erpId}
</select>
<insert id="insertMesBaseUnitInfo" parameterType="MesBaseUnitInfo" useGeneratedKeys="true" keyProperty="unitId">
insert into mes_base_unit_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="unitCode != null">unit_code,</if>
<if test="unitName != null and unitName != ''">unit_name,</if>
<if test="erpId != null">erp_id,</if>
<if test="unitStatus != null and unitStatus != ''">unit_status,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="auditDate != null">audit_date,</if>
<if test="erpModifyDate != null">erp_modify_date,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="unitCode != null">#{unitCode},</if>
<if test="unitName != null and unitName != ''">#{unitName},</if>
<if test="erpId != null">#{erpId},</if>
<if test="unitStatus != null and unitStatus != ''">#{unitStatus},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="auditDate != null">#{auditDate},</if>
<if test="erpModifyDate != null">#{erpModifyDate},</if>
</trim>
</insert>
<update id="updateMesBaseUnitInfo" parameterType="MesBaseUnitInfo">
update mes_base_unit_info
<trim prefix="SET" suffixOverrides=",">
<if test="unitCode != null">unit_code = #{unitCode},</if>
<if test="unitName != null and unitName != ''">unit_name = #{unitName},</if>
<if test="erpId != null">erp_id = #{erpId},</if>
<if test="unitStatus != null and unitStatus != ''">unit_status = #{unitStatus},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="auditDate != null">audit_date = #{auditDate},</if>
<if test="erpModifyDate != null">erp_modify_date = #{erpModifyDate},</if>
</trim>
where unit_id = #{unitId}
</update>
<delete id="deleteMesBaseUnitInfoByUnitId" parameterType="Long">
delete
from mes_base_unit_info
where unit_id = #{unitId}
</delete>
<delete id="deleteMesBaseUnitInfoByUnitIds" parameterType="String">
delete from mes_base_unit_info where unit_id in
<foreach item="unitId" collection="array" open="(" separator="," close=")">
#{unitId}
</foreach>
</delete>
</mapper>

@ -59,6 +59,17 @@
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-upload2"
size="mini"
@click="handleImport"
>采购申请单导入</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="purchaseOrderList" @selection-change="handleSelectionChange">
<el-table-column label="采购订单编号" align="center" prop="poNo" />
@ -113,12 +124,41 @@
@pagination="getList"
/>
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<!-- <div class="el-upload__tip" slot="tip">-->
<!-- <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据-->
<!-- </div>-->
<span>仅允许导入xlsxlsx格式文件</span>
<!-- <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>-->
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm"> </el-button>
<el-button @click="upload.open = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listPurchaseOrder, getPurchaseOrder, delPurchaseOrder, addPurchaseOrder, updatePurchaseOrder } from "@/api/mes/purchaseOrder";
import router from "@/router";
import {getToken} from "@/utils/auth";
export default {
name: "PurchaseOrder",
@ -179,6 +219,20 @@ export default {
},
//
form: {},
upload: {
//
open: false,
//
title: "",
//
isUploading: false,
//
updateSupport: 0,
//
headers: { Authorization: "Bearer " + getToken() },
//
url: process.env.VUE_APP_BASE_API + "/mes/import/purchaseRequisitionImportData"
},
//
rules: {
materialCode: [
@ -265,6 +319,32 @@ export default {
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "用户导入";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
this.download('system/user/importTemplate', {
}, `template_${new Date().getTime()}.xlsx`)
},
//
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
//
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
this.getList();
},
//
submitFileForm() {
this.$refs.upload.submit();
},
/** 新增按钮操作 */
handleAdd() {
this.reset();

Loading…
Cancel
Save