소재관리

This commit is contained in:
2025-12-02 17:04:04 +09:00
parent 59f883b711
commit 8eb7e2cbd0
4 changed files with 581 additions and 0 deletions

View File

@@ -24,9 +24,12 @@ import com.pms.common.bean.PersonBean;
import com.pms.common.service.BaseService;
import com.pms.common.utils.CommonUtils;
import com.pms.common.utils.Constants;
import com.pms.common.SqlMapConfig;
import com.pms.service.AdminService;
import com.pms.service.CommonService;
import org.apache.ibatis.session.SqlSession;
@Controller
public class AdminController extends BaseService {
@@ -5051,4 +5054,135 @@ public String clientImportFileProc(HttpServletRequest request, HttpSession sessi
return resultMap;
}
/**
* 소재 목록을 가져온다.
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/admin/materialMngPagingList.do")
public String getMaterialMngPaging(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
return "/admin/material/materialMngList";
}
/**
* 소재 목록 관리 - 소재 목록 그리드
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/admin/materialMngGridList.do")
public Map materialMngGridList(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
commonService.selectListPagingNew("admin.getMaterialMngGridList", request, paramMap);
return paramMap;
}
/**
* 소재 등록/수정 팝업
* @param request
* @param paramMap
* @return
*/
@RequestMapping("/admin/materialRegistPopUp.do")
public String materialRegistPopUp(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
Map resultMap = new HashMap();
try {
String objid = CommonUtils.checkNull(paramMap.get("objid"));
if(!"".equals(objid)) {
// 기존 소재 정보 조회
resultMap = commonService.selectOne("admin.getMaterialMngInfo", request, paramMap);
}
} catch(Exception e) {
e.printStackTrace();
}
request.setAttribute("resultMap", resultMap);
return "/admin/material/materialRegistPopUp";
}
/**
* 소재 저장 (등록/수정)
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/admin/saveMaterialMngInfo.do")
public Map saveMaterialMngInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try {
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
HttpSession session = request.getSession();
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String userId = CommonUtils.checkNull(person.getUserId());
String objid = CommonUtils.checkNull(paramMap.get("objid"));
paramMap.put("userId", userId);
if("".equals(objid)) {
// 신규 등록
paramMap.put("objid", CommonUtils.createObjId());
sqlSession.insert("admin.insertMaterialMng", paramMap);
} else {
// 수정
sqlSession.update("admin.updateMaterialMng", paramMap);
}
sqlSession.commit();
resultMap.put("result", "true");
resultMap.put("message", "저장되었습니다.");
} catch(Exception e) {
if(sqlSession != null) sqlSession.rollback();
e.printStackTrace();
resultMap.put("result", "false");
resultMap.put("message", "저장 중 오류가 발생했습니다: " + e.getMessage());
} finally {
if(sqlSession != null) sqlSession.close();
}
return resultMap;
}
/**
* 소재 삭제
* @param request
* @param paramMap
* @return
*/
@ResponseBody
@RequestMapping("/admin/deleteMaterialMngInfo.do")
public Map deleteMaterialMngInfo(HttpServletRequest request, @RequestParam Map<String, Object> paramMap){
Map resultMap = new HashMap();
SqlSession sqlSession = null;
try {
sqlSession = SqlMapConfig.getInstance().getSqlSession(false);
String objId = CommonUtils.checkNull(paramMap.get("objId"));
if(!"".equals(objId)) {
Map deleteParam = new HashMap();
deleteParam.put("objid", objId);
sqlSession.delete("admin.deleteMaterialMng", deleteParam);
sqlSession.commit();
resultMap.put("result", "true");
} else {
resultMap.put("result", "false");
resultMap.put("message", "삭제할 대상이 없습니다.");
}
} catch(Exception e) {
if(sqlSession != null) sqlSession.rollback();
e.printStackTrace();
resultMap.put("result", "false");
resultMap.put("message", "삭제 중 오류가 발생했습니다: " + e.getMessage());
} finally {
if(sqlSession != null) sqlSession.close();
}
return resultMap;
}
}

View File

@@ -9379,4 +9379,97 @@ SELECT
ORDER BY SCM.REGDATE DESC
</select>
<!-- ==================== 소재 관리 (MATERIAL_MNG) ==================== -->
<!-- 소재 목록 조회 (그리드용) -->
<select id="getMaterialMngGridList" parameterType="map" resultType="map">
SELECT
OBJID,
MATERIAL_CODE,
MATERIAL_NAME,
MATERIAL_PART_NO,
SIZE_SPEC,
REMARK,
STATUS,
CASE UPPER(STATUS)
WHEN 'ACTIVE' THEN '활성'
WHEN 'INACTIVE' THEN '비활성'
ELSE STATUS
END AS STATUS_NAME,
WRITER,
TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
FROM MATERIAL_MNG
WHERE 1=1
<if test="material_name != null and material_name != ''">
AND UPPER(MATERIAL_NAME) LIKE UPPER('%' || #{material_name} || '%')
</if>
<if test="material_code != null and material_code != ''">
AND UPPER(MATERIAL_CODE) LIKE UPPER('%' || #{material_code} || '%')
</if>
ORDER BY REGDATE DESC
</select>
<!-- 소재 상세 조회 -->
<select id="getMaterialMngInfo" parameterType="map" resultType="map">
SELECT
OBJID,
MATERIAL_CODE,
MATERIAL_NAME,
MATERIAL_PART_NO,
SIZE_SPEC,
REMARK,
STATUS,
WRITER,
TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE,
EDITER,
TO_CHAR(EDIT_DATE, 'YYYY-MM-DD') AS EDIT_DATE
FROM MATERIAL_MNG
WHERE OBJID = #{objid}
</select>
<!-- 소재 등록 -->
<insert id="insertMaterialMng" parameterType="map">
INSERT INTO MATERIAL_MNG (
OBJID,
MATERIAL_CODE,
MATERIAL_NAME,
MATERIAL_PART_NO,
SIZE_SPEC,
REMARK,
STATUS,
WRITER,
REGDATE
) VALUES (
#{objid},
#{material_code},
#{material_name},
#{material_part_no},
#{size_spec},
#{remark},
COALESCE(#{status}, 'ACTIVE'),
#{userId},
NOW()
)
</insert>
<!-- 소재 수정 -->
<update id="updateMaterialMng" parameterType="map">
UPDATE MATERIAL_MNG SET
MATERIAL_CODE = #{material_code},
MATERIAL_NAME = #{material_name},
MATERIAL_PART_NO = #{material_part_no},
SIZE_SPEC = #{size_spec},
REMARK = #{remark},
STATUS = #{status},
EDITER = #{userId},
EDIT_DATE = NOW()
WHERE OBJID = #{objid}
</update>
<!-- 소재 삭제 -->
<delete id="deleteMaterialMng" parameterType="map">
DELETE FROM MATERIAL_MNG
WHERE OBJID = #{objid}
</delete>
</mapper>