Browse Source

修改物料导入功能

lwx_dev
erdanergou 3 years ago
parent
commit
e645a8c954
  1. 8
      src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfo.java
  2. 7
      src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java
  3. 47
      src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml
  4. 7
      src/main/java/com/dreamchaser/depository_manage/service/MaterialTypeService.java
  5. 16
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  6. 13
      src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java
  7. 10
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java
  8. BIN
      src/main/resources/static/upload/materialImport.xlsx
  9. 1
      src/main/resources/templates/pages/application/form-step-look_minRecordOut.html
  10. 45
      src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html
  11. 11
      src/test/java/com/dreamchaser/depository_manage/TestForOther.java
  12. 47
      target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml
  13. BIN
      target/classes/static/upload/materialImport.xlsx
  14. 1
      target/classes/templates/pages/application/form-step-look_minRecordOut.html
  15. 45
      target/classes/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html

8
src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfo.java

@ -28,9 +28,15 @@ public class ExcelInfo {
private String mname;
/** 物料种类id */
@ExcelProperty(value = "物料类编码")
@ExcelProperty(value = "物料类编码")
private Long typeId;
/**
* 物料种类名称
*/
@ExcelProperty(value = "物料类型名称")
private String typeName;
/** 物料状态 */
@ExcelProperty(value = "状态",converter = ExcelStateInfoConverter.class)
private Integer state;

7
src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java

@ -35,6 +35,13 @@ public interface MaterialTypeMapper {
*/
MaterialType findMaterialTypeById(Integer id);
/**
* 根据类型名称查询物料类型
* @param name
* @return
*/
MaterialType findMaterialTypeByName(String name);
/**
* 根据id查询物料类型
* @param oldId 物料类型id

47
src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml

@ -6,9 +6,9 @@
<!-- This code was generated by TableGo tools, mark 1 begin. -->
<!-- 字段映射 -->
<resultMap id="materialTypeMap" type="com.dreamchaser.depository_manage.entity.MaterialType">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="tname" property="tname" jdbcType="VARCHAR" />
<result column="introduce" property="introduce" jdbcType="VARCHAR" />
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="tname" property="tname" jdbcType="VARCHAR"/>
<result column="introduce" property="introduce" jdbcType="VARCHAR"/>
<result column="state" property="state" jdbcType="INTEGER"/>
<result column="parentId" property="parentId" jdbcType="INTEGER"/>
<result column="oldId" property="oldId" jdbcType="INTEGER"/>
@ -20,18 +20,18 @@
<!-- This code was generated by TableGo tools, mark 2 end. -->
<!-- 查询所有数据 -->
<select id="findMaterialTypeAll" resultMap="materialTypeMap">
<select id="findMaterialTypeAll" resultMap="materialTypeMap">
SELECT
<include refid="allColumns" />
<include refid="allColumns"/>
FROM material_type mt
where mt.state != 3 and mt.state != 4
</select>
<!-- 查询所有顶级父类 -->
<select id="findMaterialTypeNoParent" resultMap="materialTypeMap">
select
<include refid="allColumns" />
<include refid="allColumns"/>
FROM material_type mt
where mt.state = 1 and mt.parentId = 0
where mt.state = 1 and mt.parentId = 0
</select>
<select id="findMaterialTypeCountByCondition" resultType="int" parameterType="map">
@ -43,7 +43,7 @@
<if test="introduce != null and introduce != ''">
AND mt.introduce LIKE CONCAT('%', #{introduce}, '%')
</if>
<if test="state != null and state != ''" >
<if test="state != null and state != ''">
and mt.state = #{state}
</if>
<if test="parentId != null">
@ -57,7 +57,7 @@
<!-- 根据条件参数查询数据列表 -->
<select id="findMaterialTypeByCondition" resultMap="materialTypeMap" parameterType="map">
SELECT
<include refid="allColumns" />
<include refid="allColumns"/>
FROM material_type mt WHERE 1 = 1
<if test="tname != null and tname != ''">
AND mt.tname LIKE CONCAT('%', #{tname}, '%')
@ -65,7 +65,7 @@
<if test="introduce != null and introduce != ''">
AND mt.introduce LIKE CONCAT('%', #{introduce}, '%')
</if>
<if test="state != null and state != ''" >
<if test="state != null and state != ''">
and mt.state = #{state}
</if>
<if test="parentId != null">
@ -98,15 +98,15 @@
<!-- 根据父类查询数据 -->
<select id="findMaterialTypeByParent" resultMap="materialTypeMap" parameterType="long">
SELECT
<include refid="allColumns" />
<include refid="allColumns"/>
FROM material_type mt
WHERE mt.parentId = #{parentId}
WHERE mt.parentId = #{parentId}
</select>
<!-- 根据主键批量获取数据 -->
<select id="findMaterialTypeByOldIds" resultMap="materialTypeMap" parameterType="list">
SELECT
<include refid="allColumns" />
<include refid="allColumns"/>
FROM material_type mt
WHERE mt.oldId in
<foreach collection="list" index="index" item="item" open="("
@ -119,14 +119,19 @@
<!-- 根据主键查询数据 -->
<select id="findMaterialTypeById" resultMap="materialTypeMap" parameterType="integer">
SELECT
<include refid="allColumns" />
<include refid="allColumns"/>
FROM material_type mt WHERE mt.oldId = #{id} and mt.state != 3 and mt.state != 4
</select>
<select id="findMaterialTypeByName" resultMap="materialTypeMap" parameterType="string">
SELECT
<include refid="allColumns"/>
FROM material_type mt WHERE mt.tname = #{name} and mt.state != 3 and mt.state != 4 group by tname
</select>
<!-- 根据主键查询数据 -->
<select id="findMaterialTypeByOldId" resultMap="materialTypeMap" parameterType="long">
SELECT
<include refid="allColumns" />
<include refid="allColumns"/>
FROM material_type mt WHERE mt.oldId = #{oldId} and mt.state != 3 and mt.state != 4
</select>
<!-- 根据主键查询数据
@ -189,7 +194,7 @@
</update>
<!-- 批量修改数据 -->
<update id="updateMaterialTypes" parameterType="list">
<update id="updateMaterialTypes" parameterType="list">
<foreach collection="list" index="index" item="item" separator=";">
UPDATE material_type
<set>
@ -216,15 +221,15 @@
DELETE FROM material_type WHERE oldId = #{id}
</delete>
<!-- 根据主键批量删除数据-->
<delete id="deleteMaterialTypeByIds" parameterType="list">
<!-- 根据主键批量删除数据-->
<delete id="deleteMaterialTypeByIds" parameterType="list">
DELETE FROM material_type WHERE oldId IN
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</delete>
<!-- 根据主键将状态改为删除-->
<!-- 根据主键将状态改为删除-->
<update id="changeStateToDeletedById" parameterType="int">
update material_type
<set>
@ -234,7 +239,7 @@
</update>
<!-- 根据主键批量将状态改为删除-->
<!-- 根据主键批量将状态改为删除-->
<update id="changeStateToDeletedByIds" parameterType="list">
update material_type
<set>

7
src/main/java/com/dreamchaser/depository_manage/service/MaterialTypeService.java

@ -69,6 +69,13 @@ public interface MaterialTypeService {
* @return 对应记录
*/
MaterialType findMaterialTypeById(Integer id);
/**
* 根据类型名称查询物料类型
* @param name
* @return
*/
MaterialType findMaterialTypeByName(String name);
/**
* 根据OldId查询对应物料类型
* @param OldId

16
src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java

@ -1040,7 +1040,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
restResponse.setStatusInfo(new StatusInfo("出库失败", "当前位置未发现该物料"));
return restResponse;
}
} else { // 如果是默认库位
}
else { // 如果是默认库位
Map<String, Object> params = new HashMap<>();
params.put("mid", inventory.getId());
params.put("pid", 0);
@ -1125,7 +1126,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
restResponse.setData("");
restResponse.setStatusInfo(new StatusInfo("出库失败", "出库失败,库存不足"));
}
} else {
}
else {
// 如果是拆单后的出库
// 用于获取对应的拆单记录
@ -1795,8 +1797,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 用于获取映射关系
Map<String, Object> paramForPlaceAndMaterial = new HashMap<>();
paramForPlaceAndMaterial.put("mid", placeById.getId());
paramForPlaceAndMaterial.put("iid", inventoryById.getId());
paramForPlaceAndMaterial.put("iid", placeById.getId());
paramForPlaceAndMaterial.put("mid", inventoryById.getId());
// 获取库存与库存之间的映射
MaterialAndPlace placeAndMaterialByMidAndPid = placeMapper.findPlaceAndMaterialByMidAndPid(paramForPlaceAndMaterial);
@ -1815,7 +1817,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
materialMapper.updateInventory(inventoryById);
placeMapper.updateMaterialAndPlace(placeAndMaterialByMidAndPid);
placeMapper.UpdatePlace(placeById);
} else {
}
else {
// 如果是拆单
Map<String, Object> paramForSplitInfo = new HashMap<>();
@ -1836,7 +1839,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
paramForUpdateSplitInventory.put("quantity", returnQuantity);
paramForUpdateSplitInventory.put("mid", inventoryById.getMid());
paramForUpdateSplitInventory.put("unit", unit);
result = splitUnitService.realInInventoryToDepository(returnQuantity, splitInventory, paramForUpdateSplitInventory, splitInfo, placeAndMaterialByMidAndPid, false);
result = splitUnitService.realInInventoryToDepository(returnQuantity, splitInventory, paramForUpdateSplitInventory, splitInfo, placeAndMaterialByMidAndPid, true);
if (paramForUpdateSplitInventory.containsKey("applicationInId")) {
depositoryRecordMapper.deleteApplicationInRecordById(ObjectFormatUtil.toInteger(paramForUpdateSplitInventory.get("applicationInId")));
}
@ -1931,6 +1934,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 修改当前已经出库的数量
applicationOutMinById.setTrueOut((int) ((trueOut * 100) + applicationOutMinById.getTrueOut()));
if (applicationOutMinById.getQuantity() - applicationOutMinById.getTrueOut() > 0) {
applicationOutMinById.setPlaceId(placeId);
// 如果当前子订单中的物料并未完全出库
depositoryRecordMapper.updateApplicationOutRecordMin(applicationOutMinById);
} else {

13
src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java

@ -112,7 +112,14 @@ public class ExcelServiceImpl implements ExcelService {
param.put("unit", excelVo.getUnit());
param.put("version", excelVo.getVersion());
param.put("texture", excelVo.getTexture());
param.put("materialTypeId", excelVo.getTypeId());
Long typeId = excelVo.getTypeId();
if (typeId != null) {
param.put("materialTypeId", typeId);
}else{
String typeName = excelVo.getTypeName();
MaterialType materialTypeByName = materialTypeService.findMaterialTypeByName(typeName);
param.put("materialTypeId", materialTypeByName.getOldId());
}
param.put("id", excelVo.getId());
param.put("brand", excelVo.getBrand());
param.put("price", excelVo.getPrice() == null ? "0" : excelVo.getPrice());
@ -517,8 +524,8 @@ public class ExcelServiceImpl implements ExcelService {
// 定义部门id
Integer adminorgId = record.getAdminorgId();
if (adminorgId != null ) {
Administration company = LinkInterfaceUtil.getCompany(adminorgId, userToken);
if (adminorgId != null) {
Administration company = LinkInterfaceUtil.getCompany(adminorgId, userToken);
// 设置部门名称
excelInfoByWrite.setAdminorgName(company.getName());
} else {

10
src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java

@ -159,6 +159,16 @@ public class MaterialTypeServiceImpl implements MaterialTypeService {
return materialTypeMapper.findMaterialTypeById(id);
}
/**
* 根据类型名称查询物料类型
* @param name
* @return
*/
@Override
public MaterialType findMaterialTypeByName(String name) {
return null;
}
@Override
public MaterialType findMaterialTypeByOldId(Long OldId) {
return materialTypeMapper.findMaterialTypeByOldId(OldId);

BIN
src/main/resources/static/upload/materialImport.xlsx

Binary file not shown.

1
src/main/resources/templates/pages/application/form-step-look_minRecordOut.html

@ -196,6 +196,7 @@
$("#editInfo").show();
$("#quantity").attr("readonly", "readonly");
$("#quantity").val(quantity);
flagForForm = false;
// $("#unit").empty();
// $("#unit").append(new Option(unit, "-1"))
};

45
src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html

@ -63,26 +63,31 @@
} else {
wxScan = wxScan.parent.wx;
}
wxScan.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["barCode", "qrCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
outboundLogic(req);
},
error: function (res) {
if (res.errMsg.indexOf('function_not_exist') > 0) {
alert('版本过低请升级')
}
}
});
// wxScan.scanQRCode({
// desc: 'scanQRCode desc',
// needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
// scanType: ["barCode", "qrCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
// success: function (res) {
// // 回调
// var result = res.resultStr;//当needResult为1时返回处理结果
// var req = {};
// req.qrCode = result;
// outboundLogic(req);
//
// },
// error: function (res) {
// if (res.errMsg.indexOf('function_not_exist') > 0) {
// alert('版本过低请升级')
// }
//
// }
//
// });
var result = "1638361349087338496";//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
outboundLogic(req);
});

11
src/test/java/com/dreamchaser/depository_manage/TestForOther.java

@ -69,12 +69,11 @@ public class TestForOther {
@Test
public void run() {
// ApprovalInfo_Details approvalInfo = new ApprovalInfo_Details();
// ApprovalInfo_Details_Approver approver = new ApprovalInfo_Details_Approver();
// approver.setUserId("PangFuZhen");
// approvalInfo.setApprover(approver);
ApplicationOutRecordP applicationOutRecordPById = depositoryRecordService.findApplicationOutRecordPById(8);
// depositoryRecordService.reviewByQyWxApprovalOut("5",approvalInfo,"7a0ab47a150869808b24d2f4dbe1bb74","2","202303280016", false,2);
ApprovalInfo_Details approvalInfo = new ApprovalInfo_Details();
ApprovalInfo_Details_Approver approver = new ApprovalInfo_Details_Approver();
approver.setUserId("PangFuZhen");
approvalInfo.setApprover(approver);
depositoryRecordService.reviewByQyWxApprovalOut("1",approvalInfo,"0f2162ca5229a3e68468c6e9ab957542","2","202303290021", false,2);
// depositoryRecordService.reviewByQyWxApprovalIn("[1]",approvalInfo,"460f46eaefb46bb0c171029f62e2cea6","2","202303220009");
// UserByPort userByPort = LinkInterfaceUtil.FindUserById(78, null);
// List<String> s = excelService.writeExcelForPrint(2, 4,userByPort);

47
target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml

@ -6,9 +6,9 @@
<!-- This code was generated by TableGo tools, mark 1 begin. -->
<!-- 字段映射 -->
<resultMap id="materialTypeMap" type="com.dreamchaser.depository_manage.entity.MaterialType">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="tname" property="tname" jdbcType="VARCHAR" />
<result column="introduce" property="introduce" jdbcType="VARCHAR" />
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="tname" property="tname" jdbcType="VARCHAR"/>
<result column="introduce" property="introduce" jdbcType="VARCHAR"/>
<result column="state" property="state" jdbcType="INTEGER"/>
<result column="parentId" property="parentId" jdbcType="INTEGER"/>
<result column="oldId" property="oldId" jdbcType="INTEGER"/>
@ -20,18 +20,18 @@
<!-- This code was generated by TableGo tools, mark 2 end. -->
<!-- 查询所有数据 -->
<select id="findMaterialTypeAll" resultMap="materialTypeMap">
<select id="findMaterialTypeAll" resultMap="materialTypeMap">
SELECT
<include refid="allColumns" />
<include refid="allColumns"/>
FROM material_type mt
where mt.state != 3 and mt.state != 4
</select>
<!-- 查询所有顶级父类 -->
<select id="findMaterialTypeNoParent" resultMap="materialTypeMap">
select
<include refid="allColumns" />
<include refid="allColumns"/>
FROM material_type mt
where mt.state = 1 and mt.parentId = 0
where mt.state = 1 and mt.parentId = 0
</select>
<select id="findMaterialTypeCountByCondition" resultType="int" parameterType="map">
@ -43,7 +43,7 @@
<if test="introduce != null and introduce != ''">
AND mt.introduce LIKE CONCAT('%', #{introduce}, '%')
</if>
<if test="state != null and state != ''" >
<if test="state != null and state != ''">
and mt.state = #{state}
</if>
<if test="parentId != null">
@ -57,7 +57,7 @@
<!-- 根据条件参数查询数据列表 -->
<select id="findMaterialTypeByCondition" resultMap="materialTypeMap" parameterType="map">
SELECT
<include refid="allColumns" />
<include refid="allColumns"/>
FROM material_type mt WHERE 1 = 1
<if test="tname != null and tname != ''">
AND mt.tname LIKE CONCAT('%', #{tname}, '%')
@ -65,7 +65,7 @@
<if test="introduce != null and introduce != ''">
AND mt.introduce LIKE CONCAT('%', #{introduce}, '%')
</if>
<if test="state != null and state != ''" >
<if test="state != null and state != ''">
and mt.state = #{state}
</if>
<if test="parentId != null">
@ -98,15 +98,15 @@
<!-- 根据父类查询数据 -->
<select id="findMaterialTypeByParent" resultMap="materialTypeMap" parameterType="long">
SELECT
<include refid="allColumns" />
<include refid="allColumns"/>
FROM material_type mt
WHERE mt.parentId = #{parentId}
WHERE mt.parentId = #{parentId}
</select>
<!-- 根据主键批量获取数据 -->
<select id="findMaterialTypeByOldIds" resultMap="materialTypeMap" parameterType="list">
SELECT
<include refid="allColumns" />
<include refid="allColumns"/>
FROM material_type mt
WHERE mt.oldId in
<foreach collection="list" index="index" item="item" open="("
@ -119,14 +119,19 @@
<!-- 根据主键查询数据 -->
<select id="findMaterialTypeById" resultMap="materialTypeMap" parameterType="integer">
SELECT
<include refid="allColumns" />
<include refid="allColumns"/>
FROM material_type mt WHERE mt.oldId = #{id} and mt.state != 3 and mt.state != 4
</select>
<select id="findMaterialTypeByName" resultMap="materialTypeMap" parameterType="string">
SELECT
<include refid="allColumns"/>
FROM material_type mt WHERE mt.tname = #{name} and mt.state != 3 and mt.state != 4 group by tname
</select>
<!-- 根据主键查询数据 -->
<select id="findMaterialTypeByOldId" resultMap="materialTypeMap" parameterType="long">
SELECT
<include refid="allColumns" />
<include refid="allColumns"/>
FROM material_type mt WHERE mt.oldId = #{oldId} and mt.state != 3 and mt.state != 4
</select>
<!-- 根据主键查询数据
@ -189,7 +194,7 @@
</update>
<!-- 批量修改数据 -->
<update id="updateMaterialTypes" parameterType="list">
<update id="updateMaterialTypes" parameterType="list">
<foreach collection="list" index="index" item="item" separator=";">
UPDATE material_type
<set>
@ -216,15 +221,15 @@
DELETE FROM material_type WHERE oldId = #{id}
</delete>
<!-- 根据主键批量删除数据-->
<delete id="deleteMaterialTypeByIds" parameterType="list">
<!-- 根据主键批量删除数据-->
<delete id="deleteMaterialTypeByIds" parameterType="list">
DELETE FROM material_type WHERE oldId IN
<foreach collection="list" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</delete>
<!-- 根据主键将状态改为删除-->
<!-- 根据主键将状态改为删除-->
<update id="changeStateToDeletedById" parameterType="int">
update material_type
<set>
@ -234,7 +239,7 @@
</update>
<!-- 根据主键批量将状态改为删除-->
<!-- 根据主键批量将状态改为删除-->
<update id="changeStateToDeletedByIds" parameterType="list">
update material_type
<set>

BIN
target/classes/static/upload/materialImport.xlsx

Binary file not shown.

1
target/classes/templates/pages/application/form-step-look_minRecordOut.html

@ -196,6 +196,7 @@
$("#editInfo").show();
$("#quantity").attr("readonly", "readonly");
$("#quantity").val(quantity);
flagForForm = false;
// $("#unit").empty();
// $("#unit").append(new Option(unit, "-1"))
};

45
target/classes/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html

@ -63,26 +63,31 @@
} else {
wxScan = wxScan.parent.wx;
}
wxScan.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["barCode", "qrCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
outboundLogic(req);
},
error: function (res) {
if (res.errMsg.indexOf('function_not_exist') > 0) {
alert('版本过低请升级')
}
}
});
// wxScan.scanQRCode({
// desc: 'scanQRCode desc',
// needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
// scanType: ["barCode", "qrCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
// success: function (res) {
// // 回调
// var result = res.resultStr;//当needResult为1时返回处理结果
// var req = {};
// req.qrCode = result;
// outboundLogic(req);
//
// },
// error: function (res) {
// if (res.errMsg.indexOf('function_not_exist') > 0) {
// alert('版本过低请升级')
// }
//
// }
//
// });
var result = "1638361349087338496";//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
outboundLogic(req);
});

Loading…
Cancel
Save