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. 5
      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. 9
      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. 39
      src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html
  11. 11
      src/test/java/com/dreamchaser/depository_manage/TestForOther.java
  12. 5
      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. 39
      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; private String mname;
/** 物料种类id */ /** 物料种类id */
@ExcelProperty(value = "物料类编码") @ExcelProperty(value = "物料类编码")
private Long typeId; private Long typeId;
/**
* 物料种类名称
*/
@ExcelProperty(value = "物料类型名称")
private String typeName;
/** 物料状态 */ /** 物料状态 */
@ExcelProperty(value = "状态",converter = ExcelStateInfoConverter.class) @ExcelProperty(value = "状态",converter = ExcelStateInfoConverter.class)
private Integer state; 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); MaterialType findMaterialTypeById(Integer id);
/**
* 根据类型名称查询物料类型
* @param name
* @return
*/
MaterialType findMaterialTypeByName(String name);
/** /**
* 根据id查询物料类型 * 根据id查询物料类型
* @param oldId 物料类型id * @param oldId 物料类型id

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

@ -122,6 +122,11 @@
<include refid="allColumns"/> <include refid="allColumns"/>
FROM material_type mt WHERE mt.oldId = #{id} and mt.state != 3 and mt.state != 4 FROM material_type mt WHERE mt.oldId = #{id} and mt.state != 3 and mt.state != 4
</select> </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 id="findMaterialTypeByOldId" resultMap="materialTypeMap" parameterType="long">

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

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

9
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("unit", excelVo.getUnit());
param.put("version", excelVo.getVersion()); param.put("version", excelVo.getVersion());
param.put("texture", excelVo.getTexture()); 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("id", excelVo.getId());
param.put("brand", excelVo.getBrand()); param.put("brand", excelVo.getBrand());
param.put("price", excelVo.getPrice() == null ? "0" : excelVo.getPrice()); param.put("price", excelVo.getPrice() == null ? "0" : excelVo.getPrice());

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); return materialTypeMapper.findMaterialTypeById(id);
} }
/**
* 根据类型名称查询物料类型
* @param name
* @return
*/
@Override
public MaterialType findMaterialTypeByName(String name) {
return null;
}
@Override @Override
public MaterialType findMaterialTypeByOldId(Long OldId) { public MaterialType findMaterialTypeByOldId(Long OldId) {
return materialTypeMapper.findMaterialTypeByOldId(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(); $("#editInfo").show();
$("#quantity").attr("readonly", "readonly"); $("#quantity").attr("readonly", "readonly");
$("#quantity").val(quantity); $("#quantity").val(quantity);
flagForForm = false;
// $("#unit").empty(); // $("#unit").empty();
// $("#unit").append(new Option(unit, "-1")) // $("#unit").append(new Option(unit, "-1"))
}; };

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

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

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

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

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

@ -122,6 +122,11 @@
<include refid="allColumns"/> <include refid="allColumns"/>
FROM material_type mt WHERE mt.oldId = #{id} and mt.state != 3 and mt.state != 4 FROM material_type mt WHERE mt.oldId = #{id} and mt.state != 3 and mt.state != 4
</select> </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 id="findMaterialTypeByOldId" resultMap="materialTypeMap" parameterType="long">

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(); $("#editInfo").show();
$("#quantity").attr("readonly", "readonly"); $("#quantity").attr("readonly", "readonly");
$("#quantity").val(quantity); $("#quantity").val(quantity);
flagForForm = false;
// $("#unit").empty(); // $("#unit").empty();
// $("#unit").append(new Option(unit, "-1")) // $("#unit").append(new Option(unit, "-1"))
}; };

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

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

Loading…
Cancel
Save